mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2026-07-04 21:03:27 +08:00
user
This commit is contained in:
@ -17,6 +17,10 @@
|
||||
<label>{{$data.home_sms_user_forget_pwd.name}}<span class="fs-12 fw-100 cr-999">({{$data.home_sms_user_forget_pwd.describe}})</span></label>
|
||||
<input type="text" name="{{$data.home_sms_user_forget_pwd.only_tag}}" placeholder="{{$data.home_sms_user_forget_pwd.name}}" data-validation-message="{{$data.home_sms_user_forget_pwd.error_tips}}" class="am-radius" <present name="data"> value="{{$data.home_sms_user_forget_pwd.value}}"</present> />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_sms_user_mobile_binding.name}}<span class="fs-12 fw-100 cr-999">({{$data.home_sms_user_mobile_binding.describe}})</span></label>
|
||||
<input type="text" name="{{$data.home_sms_user_mobile_binding.only_tag}}" placeholder="{{$data.home_sms_user_mobile_binding.name}}" data-validation-message="{{$data.home_sms_user_mobile_binding.error_tips}}" class="am-radius" <present name="data"> value="{{$data.home_sms_user_mobile_binding.value}}"</present> />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'{{:L('common_form_loading_tips')}}'}">{{:L('common_operation_save')}}</button>
|
||||
</div>
|
||||
|
||||
@ -180,9 +180,6 @@ class CommonController extends Controller
|
||||
// 用户中心菜单
|
||||
$this->assign('user_left_menu', L('user_left_menu'));
|
||||
|
||||
// 用户顶部菜单
|
||||
$this->assign('user_nav_menu', L('user_nav_menu'));
|
||||
|
||||
// 商品大分类
|
||||
$this->assign('goods_category_list', GoodsService::GoodsCategory());
|
||||
|
||||
|
||||
@ -86,9 +86,6 @@ class OrderController extends CommonController
|
||||
|
||||
// 参数
|
||||
$this->assign('params', $params);
|
||||
|
||||
// 数据列表
|
||||
$this->assign('list', $list);
|
||||
$this->display('Index');
|
||||
}
|
||||
|
||||
|
||||
@ -231,10 +231,10 @@ class SafetyController extends CommonController
|
||||
$code = GetNumberCode(6);
|
||||
if($type == 'sms')
|
||||
{
|
||||
$obj = new \My\Sms($verify_param);
|
||||
$state = $obj->SendText($accounts, MyC('home_sms_user_mobile_binding'), $code);
|
||||
$obj = new \Library\Sms($verify_param);
|
||||
$state = $obj->SendCode($accounts, $code, MyC('home_sms_user_mobile_binding'));
|
||||
} else {
|
||||
$obj = new \My\Email($verify_param);
|
||||
$obj = new \Library\Email($verify_param);
|
||||
$email_param = array(
|
||||
'email' => $accounts,
|
||||
'content' => MyC('home_email_user_email_binding'),
|
||||
@ -313,9 +313,9 @@ class SafetyController extends CommonController
|
||||
);
|
||||
if($type == 'sms')
|
||||
{
|
||||
$obj = new \My\Sms($verify_param);
|
||||
$obj = new \Library\Sms($verify_param);
|
||||
} else {
|
||||
$obj = new \My\Email($verify_param);
|
||||
$obj = new \Library\Email($verify_param);
|
||||
}
|
||||
// 是否已过期
|
||||
if(!$obj->CheckExpire())
|
||||
@ -370,9 +370,9 @@ class SafetyController extends CommonController
|
||||
);
|
||||
if($type == 'sms')
|
||||
{
|
||||
$obj = new \My\Sms($verify_param);
|
||||
$obj = new \Library\Sms($verify_param);
|
||||
} else {
|
||||
$obj = new \My\Email($verify_param);
|
||||
$obj = new \Library\Email($verify_param);
|
||||
}
|
||||
// 是否已过期
|
||||
if(!$obj->CheckExpire())
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace Home\Controller;
|
||||
|
||||
use Service\GoodsService;
|
||||
|
||||
/**
|
||||
* 用户收藏
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-01T21:51:08+0800
|
||||
*/
|
||||
class UserFavorController extends CommonController
|
||||
{
|
||||
/**
|
||||
* [_initialize 前置操作-继承公共前置方法]
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-03T12:39:08+0800
|
||||
*/
|
||||
public function _initialize()
|
||||
{
|
||||
// 调用父类前置方法
|
||||
parent::_initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品收藏
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-09
|
||||
* @desc description
|
||||
*/
|
||||
public function Goods()
|
||||
{
|
||||
// 参数
|
||||
$params = array_merge($_POST, $_GET);
|
||||
$params['user'] = $this->user;
|
||||
|
||||
// 分页
|
||||
$number = 10;
|
||||
|
||||
// 条件
|
||||
$where = GoodsService::HomeFavorGoodsListWhere($params);
|
||||
|
||||
// 获取总数
|
||||
$total = GoodsService::FavorGoodsTotal($where);
|
||||
|
||||
// 分页
|
||||
$page_params = array(
|
||||
'number' => $number,
|
||||
'total' => $total,
|
||||
'where' => $params,
|
||||
'url' => U('Home/UserFavor/Goods'),
|
||||
);
|
||||
$page = new \Library\Page($page_params);
|
||||
$this->assign('page_html', $page->GetPageHtml());
|
||||
|
||||
// 获取列表
|
||||
$data_params = array(
|
||||
'limit_start' => $page->GetPageStarNumber(),
|
||||
'limit_number' => $number,
|
||||
'where' => $where,
|
||||
);
|
||||
$data = GoodsService::FavorGoodsList($data_params);
|
||||
$this->assign('data_list', $data['data']);
|
||||
|
||||
// 参数
|
||||
$this->assign('params', $params);
|
||||
$this->display('Goods');
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -20,7 +20,7 @@ return array(
|
||||
array(
|
||||
'name' => '我的交易',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-mortar-board',
|
||||
'icon' => 'am-icon-cube',
|
||||
'item' => array(
|
||||
array(
|
||||
'control' => 'Order',
|
||||
@ -31,6 +31,20 @@ return array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'name' => '我的收藏',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-heart',
|
||||
'item' => array(
|
||||
array(
|
||||
'control' => 'UserFavor',
|
||||
'action' => 'Goods',
|
||||
'name' => '商品收藏',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-shopping-basket',
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'name' => '会员信息',
|
||||
'is_show' => 1,
|
||||
@ -60,56 +74,5 @@ return array(
|
||||
)
|
||||
),
|
||||
),
|
||||
|
||||
// 用户中心未显示的菜单active选中映射(小写)
|
||||
'user_left_menu_hidden_active' => array(
|
||||
'studentpolyinfo' => 'studentindex',
|
||||
'studentscoreinfo' => 'studentindex',
|
||||
'personalsaveinfo' => 'Personalindex',
|
||||
'safetyloginpwdinfo' => 'safetyindex',
|
||||
'safetymobileinfo' => 'safetyindex',
|
||||
'safetynewmobileinfo' => 'safetyindex',
|
||||
'safetyemailinfo' => 'safetyindex',
|
||||
'safetynewemailinfo' => 'safetyindex',
|
||||
),
|
||||
|
||||
// 用户顶部导航
|
||||
'user_nav_menu' => array(
|
||||
array(
|
||||
'control' => 'Bubble',
|
||||
'action' => 'Index',
|
||||
'name' => '冒泡',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-slideshare',
|
||||
),
|
||||
array(
|
||||
'control' => 'Personal',
|
||||
'action' => 'Index',
|
||||
'name' => '资料',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-gear',
|
||||
),
|
||||
array(
|
||||
'control' => 'Student',
|
||||
'action' => 'Index',
|
||||
'name' => '学生',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-mortar-board',
|
||||
),
|
||||
array(
|
||||
'control' => 'Safety',
|
||||
'action' => 'Index',
|
||||
'name' => '设置',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-user-secret',
|
||||
),
|
||||
array(
|
||||
'control' => 'User',
|
||||
'action' => 'Logout',
|
||||
'name' => '退出',
|
||||
'is_show' => 1,
|
||||
'icon' => 'am-icon-power-off',
|
||||
),
|
||||
),
|
||||
);
|
||||
?>
|
||||
@ -11,10 +11,6 @@ return array(
|
||||
'personal_save_nav_title_text' => '个人资料',
|
||||
'personal_nickname_text' => '昵称',
|
||||
'personal_nickname_format' => '昵称 2~16 个字符之间',
|
||||
'personal_signature_text' => '个人签名',
|
||||
'personal_signature_format' => '个人签名 0~168个字符之间',
|
||||
'personal_describe_text' => '个人描述',
|
||||
'personal_describe_format' => '个人描述 0~255个字符之间',
|
||||
'personal_birthday_text' => '生日',
|
||||
'personal_birthday_format' => '生日格式有误',
|
||||
|
||||
@ -25,8 +21,6 @@ return array(
|
||||
'birthday_text' => array('name' => '生日'),
|
||||
'mobile_security' => array('name' => '手机号码', 'tips' => '<a href="'.U('Home/Safety/MobileInfo').'">修改</a>'),
|
||||
'email_security' => array('name' => '电子邮箱', 'tips' => '<a href="'.U('Home/Safety/EmailInfo').'">修改</a>'),
|
||||
'signature' => array('name' => '个人签名'),
|
||||
'describe' => array('name' => '个人描述'),
|
||||
'add_time_text' => array('name' => '注册时间'),
|
||||
'upd_time_text' => array('name' => '最后更新时间'),
|
||||
),
|
||||
|
||||
@ -18,62 +18,8 @@ class PersonalModel extends CommonModel
|
||||
// 数据自动校验
|
||||
protected $_validate = array(
|
||||
// 添加/编辑
|
||||
array('nickname', 'CheckNickName', '{%personal_nickname_format}', 1, 'callback', 3),
|
||||
array('nickname', '2,16', '{%personal_nickname_format}', 1, 'length', 3),
|
||||
array('gender', array(0,1,2), '{%common_gender_tips}', 1, 'in', 3),
|
||||
array('birthday', 'CheckBirthday', '{%student_birthday_format}', 1, 'callback', 3),
|
||||
array('signature', 'CheckSignature', '{%personal_signature_format}', 1, 'callback', 3),
|
||||
array('describe', 'CheckDescribe', '{%personal_describe_format}', 1, 'callback', 3),
|
||||
);
|
||||
|
||||
/**
|
||||
* [CheckNickName 昵称校验]
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-13T19:29:30+0800
|
||||
*/
|
||||
public function CheckNickName()
|
||||
{
|
||||
$len = Utf8Strlen(I('nickname'));
|
||||
return ($len >= 2 && $len <= 16);
|
||||
}
|
||||
|
||||
/**
|
||||
* [CheckBirthday 生日校验]
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-13T15:12:32+0800
|
||||
*/
|
||||
public function CheckBirthday()
|
||||
{
|
||||
return (preg_match('/'.L('common_regex_birthday').'/', I('birthday')) == 1) ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* [CheckSignature 个人签名校验]
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-13T19:29:30+0800
|
||||
*/
|
||||
public function CheckSignature()
|
||||
{
|
||||
$len = Utf8Strlen(I('signature'));
|
||||
return ($len <= 168);
|
||||
}
|
||||
|
||||
/**
|
||||
* [CheckDescribe 个人描述校验]
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-13T19:29:30+0800
|
||||
*/
|
||||
public function CheckDescribe()
|
||||
{
|
||||
$len = Utf8Strlen(I('describe'));
|
||||
return ($len <= 255);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -15,237 +15,237 @@
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<form class="am-form form-validation" method="post" action="{{:U('Home/Order/Index')}}" request-type="form">
|
||||
<div class="thin">
|
||||
<div class="am-input-group am-input-group-sm am-fl so">
|
||||
<input type="text" name="keywords" class="am-radius" placeholder="账单号或关键字" value="<notempty name="params.keywords">{{$params.keywords}}</notempty>" />
|
||||
<span class="am-input-group-btn">
|
||||
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
|
||||
</span>
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<form class="am-form form-validation" method="post" action="{{:U('Home/Order/Index')}}" request-type="form">
|
||||
<div class="thin">
|
||||
<div class="am-input-group am-input-group-sm am-fl so">
|
||||
<input type="text" name="keywords" class="am-radius" placeholder="账单号或关键字" value="<notempty name="params.keywords">{{$params.keywords}}</notempty>" />
|
||||
<span class="am-input-group-btn">
|
||||
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
|
||||
</span>
|
||||
</div>
|
||||
<label class="am-fl thin_sub">
|
||||
更多筛选条件
|
||||
<input type="checkbox" name="is_more" value="1" class="none am-field-valid" <if condition="isset($params['is_more'])">checked</if> />
|
||||
<i class="am-icon-angle-up"></i>
|
||||
</label>
|
||||
</div>
|
||||
<label class="am-fl thin_sub">
|
||||
更多筛选条件
|
||||
<input type="checkbox" name="is_more" value="1" class="none am-field-valid" <if condition="isset($params['is_more'])">checked</if> />
|
||||
<i class="am-icon-angle-up"></i>
|
||||
</label>
|
||||
</div>
|
||||
<table class="so-list <if condition="!isset($params['is_more'])">none</if>">
|
||||
<tbody><tr>
|
||||
<td class="time">
|
||||
<span>时间:</span>
|
||||
<span class="am-form-group">
|
||||
<input type="text" name="time_start" class="am-form-field am-input-sm am-radius Wdate" placeholder="起始时间" value="<notempty name="params.time_start">{{$params.time_start}}</notempty>" 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">
|
||||
<input type="text" name="time_end" class="am-form-field am-input-sm am-radius Wdate" placeholder="结束时间" value="<notempty name="params.time_end">{{$params.time_end}}</notempty>" 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">
|
||||
<input type="text" 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="<notempty name="params.price_start">{{$params.price_start}}</notempty>" />
|
||||
</span>
|
||||
<em class="text-grey">~</em>
|
||||
<span class="am-form-group">
|
||||
<input type="text" 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="<notempty name="params.price_end">{{$params.price_end}}</notempty>" />
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span>支付:</span>
|
||||
<select name="payment_id" class="chosen-select" data-placeholder="支付方式...">
|
||||
<option value="-1">支付方式...</option>
|
||||
<notempty name="payment_list">
|
||||
<foreach name="payment_list" item="payment">
|
||||
<option value="{{$payment.id}}" <if condition="isset($params['payment_id']) and $params['payment_id'] eq $payment['id']">selected</if>>{{$payment.name}}</option>
|
||||
</foreach>
|
||||
</notempty>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<span>付款:</span>
|
||||
<select name="pay_status" class="chosen-select" data-placeholder="付款状态...">
|
||||
<option value="-1">付款状态...</option>
|
||||
<notempty name="common_order_pay_status">
|
||||
<foreach name="common_order_pay_status" item="pay">
|
||||
<option value="{{$pay.id}}" <if condition="isset($params['pay_status']) and $params['pay_status'] eq $pay['id']">selected</if>>{{$pay.name}}</option>
|
||||
</foreach>
|
||||
</notempty>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span>状态:</span>
|
||||
<select name="status" class="chosen-select" data-placeholder="订单状态...">
|
||||
<option value="-1">订单状态...</option>
|
||||
<notempty name="common_order_user_status">
|
||||
<foreach name="common_order_user_status" item="status">
|
||||
<option value="{{$status.id}}" <if condition="isset($params['status']) and $params['status'] eq $status['id']">selected</if>>{{$status.name}}</option>
|
||||
</foreach>
|
||||
</notempty>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
|
||||
<a href="{{:U('Home/Order/Index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</form>
|
||||
|
||||
<!-- 订单抬头 -->
|
||||
<div class="am-alert am-alert-secondary meila-radius">
|
||||
<table class="content-title">
|
||||
<tbody><tr>
|
||||
<th class="row-content">商品</th>
|
||||
<th class="row-price am-hide-sm-only">单价</th>
|
||||
<th class="row-number am-hide-sm-only">数量</th>
|
||||
<th class="row-total-price am-hide-sm-only">合计</th>
|
||||
<th class="row-status">状态</th>
|
||||
<th class="row-operate">操作</th>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
|
||||
<!-- 订单列表 -->
|
||||
<notempty name="data_list">
|
||||
<foreach name="data_list" item="order">
|
||||
<table id="data-list-{{$order.id}}" class="data-list <if condition="$order['status'] LT 4">data-ongoing</if>">
|
||||
<tr class="content-hd">
|
||||
<td colspan="6">
|
||||
<span class="am-icon-calendar-check-o"> {{:date('Y-m-d', $order['add_time'])}}</span>
|
||||
<span class="am-icon-bookmark-o"> {{$order.order_no}}</span>
|
||||
<table class="so-list <if condition="!isset($params['is_more'])">none</if>">
|
||||
<tbody><tr>
|
||||
<td class="time">
|
||||
<span>时间:</span>
|
||||
<span class="am-form-group">
|
||||
<input type="text" name="time_start" class="am-form-field am-input-sm am-radius Wdate" placeholder="起始时间" value="<notempty name="params.time_start">{{$params.time_start}}</notempty>" 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">
|
||||
<input type="text" name="time_end" class="am-form-field am-input-sm am-radius Wdate" placeholder="结束时间" value="<notempty name="params.time_end">{{$params.time_end}}</notempty>" 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">
|
||||
<input type="text" 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="<notempty name="params.price_start">{{$params.price_start}}</notempty>" />
|
||||
</span>
|
||||
<em class="text-grey">~</em>
|
||||
<span class="am-form-group">
|
||||
<input type="text" 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="<notempty name="params.price_end">{{$params.price_end}}</notempty>" />
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<foreach name="order.items" key="keys" item="goods">
|
||||
<tr>
|
||||
<td class="base row-content">
|
||||
<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>
|
||||
<notempty name="goods.attribute">
|
||||
<ul class="goods-attr">
|
||||
<foreach name="goods.attribute" item="attr">
|
||||
<li>{{$attr.attr_type_name}}:{{$attr.attr_name}}</li>
|
||||
</foreach>
|
||||
</ul>
|
||||
</notempty>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wap-base am-show-sm-only">
|
||||
<if condition="$goods['original_price'] gt 0">
|
||||
<span class="original-price">¥{{$goods.original_price}}</span>
|
||||
</if>
|
||||
<strong class="line-price">¥{{$goods.price}}</strong>
|
||||
<span class="wap-number">x{{$goods.buy_number}}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="row-price am-hide-sm-only">
|
||||
<if condition="$goods['original_price'] gt 0">
|
||||
<p class="original-price">¥{{$goods.original_price}}</p>
|
||||
</if>
|
||||
<p class="line-price">¥{{$goods.price}}</p>
|
||||
</td>
|
||||
<td class="row-number am-hide-sm-only">
|
||||
x{{$goods.buy_number}}
|
||||
</td>
|
||||
<if condition="$keys eq 0">
|
||||
<td class="row-total-price am-hide-sm-only" rowspan="{{$order.items_count}}">
|
||||
<strong class="total-price-content">¥{{$order.total_price}}</strong>
|
||||
</td>
|
||||
<td class="row-status" rowspan="{{$order.items_count}}">
|
||||
{{$order.status_name}}
|
||||
<div class="base-operate">
|
||||
<a class="block" href="{{:U('Home/Order/Detail', ['id'=>$order['id']])}}" target="_blank">订单详情</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="row-operate" rowspan="{{$order.items_count}}">
|
||||
<!-- 0待确认, 1已确认/待支付, 2已支付/待发货, 3已发货/待收货, 4已完成, 5已取消, 6已关闭 -->
|
||||
<if condition="in_array($order['status'], [0,1])">
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-ajax submit-cancel" data-url="{{:U('Home/Order/Cancel')}}" data-id="{{$order.id}}" data-view="reload">取消</button>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [1])">
|
||||
<button class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block submit-pay" data-id="{{$order.id}}" data-payment-id="{{$order.payment_id}}" data-am-modal="{target: '#order-pay-popup'}">支付</button>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [3])">
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-ajax submit-confirm" data-url="{{:U('Home/Order/Collect')}}" data-id="{{$order.id}}" data-view="reload" data-msg="请仔细确认已收到货物、确认继续吗?">收货</button>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [4]) and $order['user_is_comments'] eq 0">
|
||||
<a href="{{:U('Home/Order/Comments', ['id'=>$order['id']])}}" target="_blank" class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block">评价</a>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [4,5,6])">
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:U('Home/Order/Delete')}}" data-id="{{$order.id}}" data-view="reload">删除</button>
|
||||
</if>
|
||||
</td>
|
||||
</if>
|
||||
</tr>
|
||||
</foreach>
|
||||
</table>
|
||||
</foreach>
|
||||
|
||||
<!-- 分页 -->
|
||||
{{$page_html}}
|
||||
</notempty>
|
||||
<empty name="data_list">
|
||||
<div class="table-no"><i class="am-icon-warning"></i> {{:L('common_not_data_tips')}}</div>
|
||||
</empty>
|
||||
|
||||
<!-- 支付弹窗 -->
|
||||
<div class="am-popup am-radius" id="order-pay-popup">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">支付</h4>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd">
|
||||
<form class="am-form pay-form" method="post" action="{{:U('Home/Order/Pay')}}">
|
||||
<!-- 支付方式 -->
|
||||
<div class="business-item">
|
||||
<h3>选择支付</h3>
|
||||
<notempty name="buy_payment_list">
|
||||
<ul class="payment-list" data-type="payment">
|
||||
<foreach name="buy_payment_list" item="payment">
|
||||
<li class="payment-items-{{$payment.id}}" data-value="{{$payment.id}}">
|
||||
<notempty name="payment.logo">
|
||||
<img src="{{$payment.logo}}" />
|
||||
</notempty>
|
||||
<span>{{$payment.name}}</span>
|
||||
<i class="icon-active"></i>
|
||||
</li>
|
||||
<tr>
|
||||
<td>
|
||||
<span>支付:</span>
|
||||
<select name="payment_id" class="chosen-select" data-placeholder="支付方式...">
|
||||
<option value="-1">支付方式...</option>
|
||||
<notempty name="payment_list">
|
||||
<foreach name="payment_list" item="payment">
|
||||
<option value="{{$payment.id}}" <if condition="isset($params['payment_id']) and $params['payment_id'] eq $payment['id']">selected</if>>{{$payment.name}}</option>
|
||||
</foreach>
|
||||
</ul>
|
||||
</notempty>
|
||||
<empty name="buy_payment_list">
|
||||
<div class="table-no"><i class="am-icon-warning"></i> {{:L('order_payment_not_data_tips')}}</div>
|
||||
</empty>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<input type="hidden" name="id" value="0" />
|
||||
<input type="hidden" name="payment_id" value="0" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:L('common_form_loading_tips')}}'}">确认支付</button>
|
||||
</div>
|
||||
</form>
|
||||
</notempty>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<span>付款:</span>
|
||||
<select name="pay_status" class="chosen-select" data-placeholder="付款状态...">
|
||||
<option value="-1">付款状态...</option>
|
||||
<notempty name="common_order_pay_status">
|
||||
<foreach name="common_order_pay_status" item="pay">
|
||||
<option value="{{$pay.id}}" <if condition="isset($params['pay_status']) and $params['pay_status'] eq $pay['id']">selected</if>>{{$pay.name}}</option>
|
||||
</foreach>
|
||||
</notempty>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span>状态:</span>
|
||||
<select name="status" class="chosen-select" data-placeholder="订单状态...">
|
||||
<option value="-1">订单状态...</option>
|
||||
<notempty name="common_order_user_status">
|
||||
<foreach name="common_order_user_status" item="status">
|
||||
<option value="{{$status.id}}" <if condition="isset($params['status']) and $params['status'] eq $status['id']">selected</if>>{{$status.name}}</option>
|
||||
</foreach>
|
||||
</notempty>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
|
||||
<a href="{{:U('Home/Order/Index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</form>
|
||||
|
||||
<!-- 订单抬头 -->
|
||||
<div class="am-alert am-alert-secondary meila-radius">
|
||||
<table class="content-title">
|
||||
<tbody><tr>
|
||||
<th class="row-content">商品</th>
|
||||
<th class="row-price am-hide-sm-only">单价</th>
|
||||
<th class="row-number am-hide-sm-only">数量</th>
|
||||
<th class="row-total-price am-hide-sm-only">合计</th>
|
||||
<th class="row-status">状态</th>
|
||||
<th class="row-operate">操作</th>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
|
||||
<!-- 订单列表 -->
|
||||
<notempty name="data_list">
|
||||
<foreach name="data_list" item="order">
|
||||
<table id="data-list-{{$order.id}}" class="data-list <if condition="$order['status'] LT 4">data-ongoing</if>">
|
||||
<tr class="content-hd">
|
||||
<td colspan="6">
|
||||
<span class="am-icon-calendar-check-o"> {{:date('Y-m-d', $order['add_time'])}}</span>
|
||||
<span class="am-icon-bookmark-o"> {{$order.order_no}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<foreach name="order.items" key="keys" item="goods">
|
||||
<tr>
|
||||
<td class="base row-content">
|
||||
<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>
|
||||
<notempty name="goods.attribute">
|
||||
<ul class="goods-attr">
|
||||
<foreach name="goods.attribute" item="attr">
|
||||
<li>{{$attr.attr_type_name}}:{{$attr.attr_name}}</li>
|
||||
</foreach>
|
||||
</ul>
|
||||
</notempty>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wap-base am-show-sm-only">
|
||||
<if condition="$goods['original_price'] gt 0">
|
||||
<span class="original-price">¥{{$goods.original_price}}</span>
|
||||
</if>
|
||||
<strong class="line-price">¥{{$goods.price}}</strong>
|
||||
<span class="wap-number">x{{$goods.buy_number}}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="row-price am-hide-sm-only">
|
||||
<if condition="$goods['original_price'] gt 0">
|
||||
<p class="original-price">¥{{$goods.original_price}}</p>
|
||||
</if>
|
||||
<p class="line-price">¥{{$goods.price}}</p>
|
||||
</td>
|
||||
<td class="row-number am-hide-sm-only">
|
||||
x{{$goods.buy_number}}
|
||||
</td>
|
||||
<if condition="$keys eq 0">
|
||||
<td class="row-total-price am-hide-sm-only" rowspan="{{$order.items_count}}">
|
||||
<strong class="total-price-content">¥{{$order.total_price}}</strong>
|
||||
</td>
|
||||
<td class="row-status" rowspan="{{$order.items_count}}">
|
||||
{{$order.status_name}}
|
||||
<div class="base-operate">
|
||||
<a class="block" href="{{:U('Home/Order/Detail', ['id'=>$order['id']])}}" target="_blank">订单详情</a>
|
||||
</div>
|
||||
</td>
|
||||
<td class="row-operate" rowspan="{{$order.items_count}}">
|
||||
<!-- 0待确认, 1已确认/待支付, 2已支付/待发货, 3已发货/待收货, 4已完成, 5已取消, 6已关闭 -->
|
||||
<if condition="in_array($order['status'], [0,1])">
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-ajax submit-cancel" data-url="{{:U('Home/Order/Cancel')}}" data-id="{{$order.id}}" data-view="reload">取消</button>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [1])">
|
||||
<button class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block submit-pay" data-id="{{$order.id}}" data-payment-id="{{$order.payment_id}}" data-am-modal="{target: '#order-pay-popup'}">支付</button>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [3])">
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-ajax submit-confirm" data-url="{{:U('Home/Order/Collect')}}" data-id="{{$order.id}}" data-view="reload" data-msg="请仔细确认已收到货物、确认继续吗?">收货</button>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [4]) and $order['user_is_comments'] eq 0">
|
||||
<a href="{{:U('Home/Order/Comments', ['id'=>$order['id']])}}" target="_blank" class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block">评价</a>
|
||||
</if>
|
||||
<if condition="in_array($order['status'], [4,5,6])">
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:U('Home/Order/Delete')}}" data-id="{{$order.id}}" data-view="reload">删除</button>
|
||||
</if>
|
||||
</td>
|
||||
</if>
|
||||
</tr>
|
||||
</foreach>
|
||||
</table>
|
||||
</foreach>
|
||||
|
||||
<!-- 分页 -->
|
||||
{{$page_html}}
|
||||
</notempty>
|
||||
<empty name="data_list">
|
||||
<div class="table-no"><i class="am-icon-warning"></i> {{:L('common_not_data_tips')}}</div>
|
||||
</empty>
|
||||
|
||||
<!-- 支付弹窗 -->
|
||||
<div class="am-popup am-radius" id="order-pay-popup">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">支付</h4>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd">
|
||||
<form class="am-form pay-form" method="post" action="{{:U('Home/Order/Pay')}}">
|
||||
<!-- 支付方式 -->
|
||||
<div class="business-item">
|
||||
<h3>选择支付</h3>
|
||||
<notempty name="buy_payment_list">
|
||||
<ul class="payment-list" data-type="payment">
|
||||
<foreach name="buy_payment_list" item="payment">
|
||||
<li class="payment-items-{{$payment.id}}" data-value="{{$payment.id}}">
|
||||
<notempty name="payment.logo">
|
||||
<img src="{{$payment.logo}}" />
|
||||
</notempty>
|
||||
<span>{{$payment.name}}</span>
|
||||
<i class="icon-active"></i>
|
||||
</li>
|
||||
</foreach>
|
||||
</ul>
|
||||
</notempty>
|
||||
<empty name="buy_payment_list">
|
||||
<div class="table-no"><i class="am-icon-warning"></i> {{:L('order_payment_not_data_tips')}}</div>
|
||||
</empty>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<input type="hidden" name="id" value="0" />
|
||||
<input type="hidden" name="payment_id" value="0" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:L('common_form_loading_tips')}}'}">确认支付</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- footer start -->
|
||||
|
||||
@ -1,20 +1,30 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('personal_save_nav_title_text')}}</span>
|
||||
<a href="{{:U('Home/Personal/SaveInfo')}}" class="fr fs-14 m-t-5"> {{:L('common_operation_edit')}}</a>
|
||||
<span class="legend-title">{{:L('personal_save_nav_title_text')}}</span>
|
||||
<a href="{{:U('Home/Personal/SaveInfo')}}" class="am-fr"> {{:L('common_operation_edit')}}</a>
|
||||
</legend>
|
||||
<dl class="dl-content">
|
||||
<foreach name="personal_show_list" key="k" item="v">
|
||||
@ -22,12 +32,12 @@
|
||||
<dt>{{$v.name}}</dt>
|
||||
<dd>
|
||||
<if condition="empty($user[$k])">
|
||||
<span class="cr-999">{{:L('common_on_fill_in_the_text')}}</span>
|
||||
<span class="items-value-empty">{{:L('common_on_fill_in_the_text')}}</span>
|
||||
<else />
|
||||
{{$user[$k]}}
|
||||
</if>
|
||||
<if condition="isset($v['tips'])">
|
||||
<span class="m-l-30">{{$v.tips}}</span>
|
||||
<span class="span-edit">{{$v.tips}}</span>
|
||||
</if>
|
||||
</dd>
|
||||
</if>
|
||||
@ -35,13 +45,9 @@
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
@ -1,22 +1,32 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:U('Home/Personal/Save')}}" method="POST" request-type="ajax-url" request-value="{{:U('Home/Personal/Index')}}">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('personal_save_nav_title_text')}}</span>
|
||||
<a href="{{:U('Home/Personal/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
<span class="legend-title">{{:L('personal_save_nav_title_text')}}</span>
|
||||
<a href="{{:U('Home/Personal/Index')}}" class="am-fr am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('personal_nickname_text')}}</label>
|
||||
@ -25,15 +35,7 @@
|
||||
<include file="Lib/Gender" />
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('personal_birthday_text')}}</label>
|
||||
<input type="text" name="birthday" class="am-radius" placeholder="{{:L('personal_birthday_text')}}" pattern="{{:L('common_regex_birthday')}}" data-validation-message="{{:L('personal_birthday_format')}}" <notempty name="data"> value="{{$data.birthday_text}}" </notempty> data-am-datepicker="{format: 'yyyy-mm-dd', viewMode: 'years'}" readonly required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('personal_signature_text')}}</label>
|
||||
<textarea rows="3" maxlength="168" name="signature" class="am-radius" placeholder="{{:L('personal_signature_text')}}" data-validation-message="{{:L('personal_signature_format')}}"><present name="data">{{$data.signature}}</present></textarea>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('personal_describe_text')}}</label>
|
||||
<textarea rows="5" maxlength="255" name="describe" class="am-radius" placeholder="{{:L('personal_describe_text')}}" data-validation-message="{{:L('personal_describe_format')}}"><present name="data">{{$data.describe}}</present></textarea>
|
||||
<input type="text" name="birthday" class="am-form-field am-input-sm am-radius Wdate" placeholder="{{:L('personal_birthday_text')}}" data-validation-message="{{:L('personal_birthday_format')}}" <notempty name="data"> value="{{$data.birthday_text}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})"</notempty> autocomplete="off" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'{{:L('common_form_loading_tips')}}'}">{{:L('common_operation_save')}}</button>
|
||||
@ -42,13 +44,9 @@
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
@ -1,18 +0,0 @@
|
||||
<div class="site-oneself" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- link start -->
|
||||
<if condition="!empty($link['layout'])">
|
||||
<div class="layout-100">
|
||||
<div class="my-link o-h">
|
||||
<legend>{{:L('common_view_link_name')}}</legend>
|
||||
<if condition="!empty($link['data'])">
|
||||
<ul>
|
||||
<foreach name="link.data" item="v">
|
||||
<li><a href="{{$v.url}}" <if condition="$v['is_new_window_open'] eq 1">target="_blank"</if> title="{{$v.describe}}">{{$v.name}}</a></li>
|
||||
</foreach>
|
||||
</ul>
|
||||
</if>
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
<!-- link end -->
|
||||
</div>
|
||||
@ -13,7 +13,7 @@
|
||||
|
||||
<div class="search-bar pr">
|
||||
<form action="{{:U('Home/Search/Index')}}" method="POST">
|
||||
<input id="search-input" name="keywords" type="text" placeholder="{{:L('common_so_tips')}}" value="<if condition="!empty($params['keywords'])">{{$params.keywords}}</if>" />
|
||||
<input id="search-input" name="keywords" type="text" placeholder="{{:L('common_so_tips')}}" value="<if condition="!empty($params['keywords'])">{{$params.keywords}}</if>" autocomplete="off" />
|
||||
<input id="ai-topsearch" class="submit am-btn" placeholder="{{:L('common_so_tips')}}" index="1" type="submit" value="{{:L('common_so_text')}}" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<foreach name="user_left_menu" key="k" item="v">
|
||||
<if condition="$v['is_show'] eq 1">
|
||||
<if condition="empty($v['item'])">
|
||||
<li <if condition="(strtolower(CONTROLLER_NAME.ACTION_NAME) eq strtolower($v['control'].$v['action'])) or (isset(L('user_left_menu_hidden_active')[strtolower(CONTROLLER_NAME.ACTION_NAME)]) and strtolower(L('user_left_menu_hidden_active')[strtolower(CONTROLLER_NAME.ACTION_NAME)]) eq strtolower($v['control'].$v['action']))">class="am-active"</if>>
|
||||
<li data-value="user-left-menu-{{:strtolower($v['control'].'-'.$v['action'])}}" class="user-left-menu-{{:strtolower($v['control'].'-'.$v['action'])}} <if condition="strtolower(CONTROLLER_NAME.ACTION_NAME) eq strtolower($v['control'].$v['action']) and strtolower($v['control'].$v['action']) eq 'userindex'">am-active</if>" >
|
||||
<a href="{{:U('Home/'.$v['control'].'/'.$v['action'])}}"><if condition="!empty($v['icon'])"><i class="{{$v.icon}}"></i></if> {{$v.name}}</a>
|
||||
</li>
|
||||
<else />
|
||||
@ -13,7 +13,7 @@
|
||||
<ul class="am-list am-collapse user-sidebar-sub am-in" id="collapse-nav-{{$k}}">
|
||||
<foreach name="v.item" item="vs">
|
||||
<if condition="$vs['is_show'] eq 1">
|
||||
<li <if condition="(strtolower(CONTROLLER_NAME.ACTION_NAME) eq strtolower($vs['control'].$vs['action'])) or (isset(L('user_left_menu_hidden_active')[strtolower(CONTROLLER_NAME.ACTION_NAME)]) and strtolower(L('user_left_menu_hidden_active')[strtolower(CONTROLLER_NAME.ACTION_NAME)]) eq strtolower($vs['control'].$vs['action']))">class="am-active"</if>>
|
||||
<li data-value="user-left-menu-{{:strtolower($vs['control'].'-'.$vs['action'])}}" class="user-left-menu-{{:strtolower($vs['control'].'-'.$vs['action'])}}">
|
||||
<a href="{{:U('Home/'.$vs['control'].'/'.$vs['action'])}}" class="am-cf"><if condition="!empty($vs['icon'])"><i class="{{$vs.icon}}"></i></if> {{$vs.name}}</a>
|
||||
</li>
|
||||
</if>
|
||||
|
||||
@ -1,22 +1,32 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:U('Home/Safety/VerifyCheck')}}" method="POST" request-type="ajax-url" request-value="{{:U('Home/Safety/NewEmailInfo')}}">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('safety_original_email_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
<span class="legend-title">{{:L('safety_original_email_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="am-fr am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('common_email_name')}}</label>
|
||||
@ -42,15 +52,15 @@
|
||||
<div class="am-modal-hd">
|
||||
<a href="javascript:;" class="am-close am-close-spin" data-am-modal-close>×</a>
|
||||
</div>
|
||||
<div class="am-modal-bd o-h">
|
||||
<div class="o-h m-t-15">
|
||||
<div class="am-modal-bd">
|
||||
<div class="base">
|
||||
<input type="text" placeholder="{{:L('common_img_verify_text')}}" maxlength="6" id="verify-img-value" data-validation-message="{{:L('common_img_verify_tips')}}" class="am-form-field am-radius" />
|
||||
<div class="fl">
|
||||
<div class="am-fl">
|
||||
<img src="{{:U('Home/Safety/VerifyEntry')}}" class="am-radius c-p" id="verify-img" onClick='this.src="{{:U('Home/Safety/VerifyEntry')}}"' />
|
||||
<a href="javascript:;" class="fs-12 c-p" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
<a href="javascript:;" class="verify-tips" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm block m-t-20 btn-loading-example verify-submit-win" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:L('common_send_tips')}}'}" data-win="1">{{:L('common_operation_confirm')}}</button>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm block btn-loading-example verify-submit-win" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:L('common_send_tips')}}'}" data-win="1">{{:L('common_operation_confirm')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -60,10 +70,6 @@
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
@ -1,17 +1,27 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<foreach name="safety_panel_list" item="v">
|
||||
<section class="am-panel am-panel-default am-radius am-panel-<if condition="empty($data[$v['type']]) and empty($v['msg'])">danger<else />default</if>">
|
||||
<header class="am-panel-hd">
|
||||
|
||||
@ -1,22 +1,32 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:U('Home/Safety/LoginPwdUpdate')}}" method="POST" request-type="ajax-url" request-value="{{:U('Home/Safety/Index')}}">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('safety_loginpwd_nav_title_text')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
<span class="legend-title">{{:L('safety_loginpwd_nav_title_text')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="am-fr am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('safety_my_loginpwd_text')}}</label>
|
||||
@ -40,10 +50,6 @@
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
@ -1,22 +1,32 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:U('Home/Safety/VerifyCheck')}}" method="POST" request-type="ajax-url" request-value="{{:U('Home/Safety/NewMobileInfo')}}">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('safety_original_mobile_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
<span class="legend-title">{{:L('safety_original_mobile_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="am-fr am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('common_mobile_name')}}</label>
|
||||
@ -42,12 +52,12 @@
|
||||
<div class="am-modal-hd">
|
||||
<a href="javascript:;" class="am-close am-close-spin" data-am-modal-close>×</a>
|
||||
</div>
|
||||
<div class="am-modal-bd o-h">
|
||||
<div class="o-h m-t-15">
|
||||
<div class="am-modal-bd">
|
||||
<div class="base">
|
||||
<input type="text" placeholder="{{:L('common_img_verify_text')}}" maxlength="6" id="verify-img-value" data-validation-message="{{:L('common_img_verify_tips')}}" class="am-form-field am-radius" />
|
||||
<div class="fl">
|
||||
<div class="am-fl">
|
||||
<img src="{{:U('Home/Safety/VerifyEntry')}}" class="am-radius c-p" id="verify-img" onClick='this.src="{{:U('Home/Safety/VerifyEntry')}}"' />
|
||||
<a href="javascript:;" class="fs-12 c-p" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
<a href="javascript:;" class="verify-tips" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm block m-t-20 btn-loading-example verify-submit-win" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:L('common_send_tips')}}'}" data-win="1">{{:L('common_operation_confirm')}}</button>
|
||||
@ -56,14 +66,11 @@
|
||||
</div>
|
||||
<!-- verify win end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
</div>
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
<!-- footer end -->
|
||||
@ -1,22 +1,32 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:U('Home/Safety/AccountsUpdate')}}" method="POST" request-type="ajax-url" request-value="{{:U('Home/Safety/Index')}}">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('safety_new_email_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
<span class="legend-title">{{:L('safety_new_email_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="am-fr am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('common_email_name')}}</label>
|
||||
@ -42,15 +52,15 @@
|
||||
<div class="am-modal-hd">
|
||||
<a href="javascript:;" class="am-close am-close-spin" data-am-modal-close>×</a>
|
||||
</div>
|
||||
<div class="am-modal-bd o-h">
|
||||
<div class="o-h m-t-15">
|
||||
<div class="am-modal-bd">
|
||||
<div class="base">
|
||||
<input type="text" placeholder="{{:L('common_img_verify_text')}}" maxlength="6" id="verify-img-value" data-validation-message="{{:L('common_img_verify_tips')}}" class="am-form-field am-radius" />
|
||||
<div class="fl">
|
||||
<div class="am-fl">
|
||||
<img src="{{:U('Home/Safety/VerifyEntry')}}" class="am-radius c-p" id="verify-img" onClick='this.src="{{:U('Home/Safety/VerifyEntry')}}"' />
|
||||
<a href="javascript:;" class="fs-12 c-p" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
<a href="javascript:;" class="verify-tips" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm block m-t-20 btn-loading-example verify-submit-win-new" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:L('common_send_tips')}}'}" data-win="1">{{:L('common_operation_confirm')}}</button>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm block btn-loading-example verify-submit-win-new" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:L('common_send_tips')}}'}" data-win="1">{{:L('common_operation_confirm')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -60,10 +70,6 @@
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
@ -1,22 +1,32 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header nav start -->
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
<!-- header nav end -->
|
||||
|
||||
<div class="am-cf user-main" <if condition="!empty($max_width_style)">style="{{$max_width_style}}"</if>>
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body p-10">
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:U('Home/Safety/AccountsUpdate')}}" method="POST" request-type="ajax-url" request-value="{{:U('Home/Safety/Index')}}">
|
||||
<legend>
|
||||
<span class="fs-16">{{:L('safety_new_mobile_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
<span class="legend-title">{{:L('safety_new_mobile_nav_title')}}</span>
|
||||
<a href="{{:U('Home/Safety/Index')}}" class="am-fr am-icon-mail-reply"> {{:L('common_operation_back')}}</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('common_mobile_name')}}</label>
|
||||
@ -42,12 +52,12 @@
|
||||
<div class="am-modal-hd">
|
||||
<a href="javascript:;" class="am-close am-close-spin" data-am-modal-close>×</a>
|
||||
</div>
|
||||
<div class="am-modal-bd o-h">
|
||||
<div class="o-h m-t-15">
|
||||
<div class="am-modal-bd">
|
||||
<div class="base">
|
||||
<input type="text" placeholder="{{:L('common_img_verify_text')}}" maxlength="6" id="verify-img-value" data-validation-message="{{:L('common_img_verify_tips')}}" class="am-form-field am-radius" />
|
||||
<div class="fl">
|
||||
<div class="am-fl">
|
||||
<img src="{{:U('Home/Safety/VerifyEntry')}}" class="am-radius c-p" id="verify-img" onClick='this.src="{{:U('Home/Safety/VerifyEntry')}}"' />
|
||||
<a href="javascript:;" class="fs-12 c-p" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
<a href="javascript:;" class="verify-tips" onClick="document.getElementById('verify-img').src='{{:U('Home/Safety/VerifyEntry')}}'">{{:L('common_img_verify_submit_text')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm block m-t-20 btn-loading-example verify-submit-win-new" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:L('common_send_tips')}}'}" data-win="1">{{:L('common_operation_confirm')}}</button>
|
||||
@ -60,10 +70,6 @@
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- layuot common module start -->
|
||||
<include file="Public/CommonModule" />
|
||||
<!-- layuot common module end -->
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
19
service/Application/Home/View/Default/User/Index.html
Executable file → Normal file
19
service/Application/Home/View/Default/User/Index.html
Executable file → Normal file
@ -14,17 +14,18 @@
|
||||
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
ShopXO
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
ShopXO
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- footer start -->
|
||||
|
||||
33
service/Application/Home/View/Default/UserFavor/Goods.html
Normal file
33
service/Application/Home/View/Default/UserFavor/Goods.html
Normal file
@ -0,0 +1,33 @@
|
||||
<include file="Public/Header" />
|
||||
|
||||
<!-- header top nav -->
|
||||
<include file="Public/HeaderTopNav" />
|
||||
|
||||
<!-- search -->
|
||||
<include file="Public/NavSearch" />
|
||||
|
||||
<!-- header nav -->
|
||||
<include file="Public/HeaderNav" />
|
||||
|
||||
<!-- goods category -->
|
||||
<include file="Public/GoodsCategory" />
|
||||
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
<include file="Public/UserMenu" />
|
||||
<!-- user menu end -->
|
||||
|
||||
<!-- content start -->
|
||||
<div class="user-content">
|
||||
<div class="user-content-body">
|
||||
goods
|
||||
</div>
|
||||
</div>
|
||||
<!-- content end -->
|
||||
</div>
|
||||
|
||||
<!-- footer start -->
|
||||
<include file="Public/Footer" />
|
||||
<!-- footer end -->
|
||||
File diff suppressed because one or more lines are too long
@ -404,5 +404,143 @@ class GoodsService
|
||||
{
|
||||
return (int) M('OrderComments')->where(['goods_id'=>intval($goods_id)])->count();
|
||||
}
|
||||
|
||||
/**
|
||||
* 前端商品收藏列表条件
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function HomeFavorGoodsListWhere($params = [])
|
||||
{
|
||||
$where = [
|
||||
'g.is_delete_time' => 0,
|
||||
];
|
||||
|
||||
// 用户id
|
||||
if(!empty($params['user']))
|
||||
{
|
||||
$where['f.user_id'] = $params['user']['id'];
|
||||
}
|
||||
|
||||
if(!empty($params['keywords']))
|
||||
{
|
||||
$where['g.title'] = array('like', '%'.I('keywords').'%');
|
||||
}
|
||||
|
||||
return $where;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品收藏总数
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $where [条件]
|
||||
*/
|
||||
public static function FavorGoodsTotal($where = [])
|
||||
{
|
||||
return (int) M('GoodsFavor')->where($where)->count();
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品收藏列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function FavorGoodsList($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'where',
|
||||
'error_msg' => '条件不能为空',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'is_array',
|
||||
'key_name' => 'where',
|
||||
'error_msg' => '条件格式有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'isset',
|
||||
'key_name' => 'limit_start',
|
||||
'error_msg' => '分页起始值有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'isset',
|
||||
'key_name' => 'limit_number',
|
||||
'error_msg' => '分页数量不能为空',
|
||||
],
|
||||
];
|
||||
$ret = params_checked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
$limit_start = max(0, intval($params['limit_start']));
|
||||
$limit_number = max(1, intval($params['limit_number']));
|
||||
$order_by = empty($params['$order_by']) ? 'id desc' : I('order_by', '', '', $params);
|
||||
|
||||
// 获取订单
|
||||
$data = M('GoodsFavor')->where($params['where'])->limit($limit_start, $limit_number)->order($order_by)->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
$detail_m = M('OrderDetail');
|
||||
$detail_field = 'id,goods_id,title,images,original_price,price,attribute,buy_number';
|
||||
$images_host = C('IMAGE_HOST');
|
||||
$order_status_list = L('common_order_user_status');
|
||||
$order_pay_status = L('common_order_pay_status');
|
||||
foreach($data as &$v)
|
||||
{
|
||||
// 订单基础
|
||||
$total_price = 0;
|
||||
$v['payment_name'] = '';
|
||||
|
||||
// 状态
|
||||
$v['status_name'] = $order_status_list[$v['status']]['name'];
|
||||
|
||||
// 支付状态
|
||||
$v['pay_status_name'] = $order_pay_status[$v['pay_status']]['name'];
|
||||
|
||||
// 快递公司
|
||||
$v['express_name'] = ResourcesService::ExpressName(['express_id'=>$v['express_id']]);
|
||||
|
||||
// 收件人地址
|
||||
$v['receive_province_name'] = ResourcesService::RegionName(['region_id'=>$v['receive_province']]);
|
||||
$v['receive_city_name'] = ResourcesService::RegionName(['region_id'=>$v['receive_city']]);
|
||||
$v['receive_county_name'] = ResourcesService::RegionName(['region_id'=>$v['receive_county']]);
|
||||
|
||||
// 订单详情
|
||||
$items = $detail_m->where(['order_id'=>$v['id']])->field($detail_field)->select();
|
||||
if(!empty($items))
|
||||
{
|
||||
foreach($items as &$vs)
|
||||
{
|
||||
$vs['images'] = empty($vs['images']) ? null : $images_host.$vs['images'];
|
||||
$vs['attribute'] = empty($vs['attribute']) ? null : json_decode($vs['attribute'], true);
|
||||
$vs['goods_url'] = HomeUrl('Goods', 'Index', ['id'=>$vs['goods_id']]);
|
||||
$vs['total_price'] = $vs['buy_number']*$vs['price'];
|
||||
|
||||
$total_price += $vs['total_price'];
|
||||
}
|
||||
}
|
||||
$v['items'] = $items;
|
||||
$v['items_count'] = count($items);
|
||||
$v['total_price'] = $total_price;
|
||||
}
|
||||
}
|
||||
return DataReturn('处理成功', 0, $data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -333,5 +333,6 @@ class UserService
|
||||
return DataReturn(L('common_operation_set_error'), -100);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
17
service/Public/Home/Default/Css/Personal.css
Normal file
17
service/Public/Home/Default/Css/Personal.css
Normal file
@ -0,0 +1,17 @@
|
||||
.user-content-body legend {
|
||||
padding-bottom: 0.2rem;
|
||||
margin-bottom: 1rem;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
.user-content-body .legend-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
.user-content-body a {
|
||||
color: #e7747f;
|
||||
}
|
||||
.user-content-body .items-value-empty {
|
||||
color: #999;
|
||||
}
|
||||
.user-content-body .span-edit {
|
||||
margin-left: 15px;
|
||||
}
|
||||
25
service/Public/Home/Default/Css/Safety.css
Normal file
25
service/Public/Home/Default/Css/Safety.css
Normal file
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
.user-content-body .am-panel-bd { overflow: hidden; }
|
||||
|
||||
/**
|
||||
* 详情页面
|
||||
*/
|
||||
.user-content-body .verify-submit-win, .user-content-body .verify-submit-win-new { margin-top: 20px; display: block; }
|
||||
.user-content-body .reg-switch-tips { font-weight: 100; font-size: 12px; color: #f87689; margin-left: 20px; }
|
||||
.user-content-body #verify-win .am-modal-bd { margin-top: 10px; }
|
||||
.user-content-body #verify-win .am-modal-bd .base { overflow: hidden; }
|
||||
.user-content-body #verify-win .am-modal-bd .base .verify-tips { font-size: 12px; }
|
||||
|
||||
.user-content-body legend {
|
||||
padding-bottom: 0.2rem;
|
||||
margin-bottom: 1rem;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
.user-content-body .legend-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
.user-content-body a {
|
||||
color: #e7747f;
|
||||
}
|
||||
@ -1,9 +1,11 @@
|
||||
form.form-validation, .reg-switch-view { margin: 30px 0 60px 0; }
|
||||
.reg-switch-view .am-btn { width: 49%; line-height: 100px; font-size: 16px; }
|
||||
|
||||
.verify-submit-win { margin-top: 20px; display: block; }
|
||||
.reg-switch-tips { font-weight: 100; font-size: 12px; color: #f87689; margin-left: 20px; }
|
||||
#verify-win .am-modal-bd { margin-top: 10px; }
|
||||
#verify-win .am-modal-bd .base { overflow: hidden; }
|
||||
#verify-win .am-modal-bd .base .verify-tips { font-size: 12px; }
|
||||
.reg-switch-view .am-btn { width: 49%; line-height: 100px; font-size: 16px; }
|
||||
|
||||
/**
|
||||
* PC
|
||||
|
||||
@ -2,8 +2,32 @@ console.log("%c\u5b89\u5168\u8b66\u544a\uff01","font-size:50px;color:red;-webkit
|
||||
console.log("%c\u6b64\u6d4f\u89c8\u5668\u529f\u80fd\u4e13\u4f9b\u5f00\u53d1\u8005\u4f7f\u7528\u3002\u8bf7\u4e0d\u8981\u5728\u6b64\u7c98\u8d34\u6267\u884c\u4efb\u4f55\u5185\u5bb9\uff0c\u8fd9\u53ef\u80fd\u4f1a\u5bfc\u81f4\u60a8\u7684\u8d26\u6237\u53d7\u5230\u653b\u51fb\uff0c\u7ed9\u60a8\u5e26\u6765\u635f\u5931 \uff01","font-size: 20px;color:#333");
|
||||
console.log("\u6280\u672f\u652f\u6301\uff1a\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0068\u006f\u0070\u0078\u006f\u002e\u006e\u0065\u0074\u002f");
|
||||
|
||||
var store = $.AMUI.store;
|
||||
if(!store.enabled)
|
||||
{
|
||||
alert('Local storage is not supported by your browser. Please disable "Private Mode", or upgrade to a modern browser.');
|
||||
} else {
|
||||
// 选择缓存key
|
||||
var store_user_menu_key = 'store-user-menu-active-key';
|
||||
}
|
||||
|
||||
$(function()
|
||||
{
|
||||
// 选中处理
|
||||
if(store.enabled)
|
||||
{
|
||||
// 用户菜单选中
|
||||
if($('.user-sidebar-list li.am-active').length == 0)
|
||||
{
|
||||
var user_menu_value = store.get(store_user_menu_key);
|
||||
if(user_menu_value !== undefined)
|
||||
{
|
||||
$('.user-sidebar-list li').removeClass('am-active')
|
||||
$('.user-sidebar-list').find('.'+user_menu_value).addClass('am-active');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//鼠标悬停信息
|
||||
$("#wrap .item").mouseenter(function(){
|
||||
$(this).children(".mp_tooltip").animate({left:-92,queue:true});
|
||||
@ -102,8 +126,15 @@ $(function()
|
||||
// 用户中心菜单
|
||||
$('.user-item-parent').on('click', function()
|
||||
{
|
||||
console.log(1)
|
||||
$(this).find('.am-icon-angle-down').toggleClass('more-icon-rotate');
|
||||
});
|
||||
$('.user-sidebar-list li').on('click', function()
|
||||
{
|
||||
var value = $(this).data('value') || null;
|
||||
if(value != null)
|
||||
{
|
||||
store.set(store_user_menu_key, value);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
194
service/Public/Home/Default/Js/Safety.js
Normal file
194
service/Public/Home/Default/Js/Safety.js
Normal file
@ -0,0 +1,194 @@
|
||||
$(function()
|
||||
{
|
||||
$verify_win = $('#verify-win');
|
||||
|
||||
// 原帐号验证码发送
|
||||
$('.verify-submit, .verify-submit-win').on('click', function()
|
||||
{
|
||||
var $this = $(this);
|
||||
var $verify = $('#verify-img-value');
|
||||
var verify = '';
|
||||
|
||||
// 是否需要先校验图片验证码
|
||||
if($this.data('verify') == 1)
|
||||
{
|
||||
// 开启图片验证码窗口
|
||||
$verify_win.modal('open');
|
||||
$verify.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 验证码窗口操作按钮则更新按钮对象
|
||||
var is_win = $(this).data('win');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$this = $('.verify-submit');
|
||||
|
||||
// 验证码参数处理
|
||||
verify = $verify.val().replace(/\s+/g, '');
|
||||
|
||||
if(verify.length < 6)
|
||||
{
|
||||
Prompt($verify.data('validation-message'));
|
||||
$verify.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 验证码时间间隔
|
||||
var time_count = parseInt($this.data('time'));
|
||||
|
||||
// 按钮交互
|
||||
$this.button('loading');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win').button('loading');
|
||||
}
|
||||
|
||||
// 发送验证码
|
||||
$.ajax({
|
||||
url:$('.verify-submit').data('url'),
|
||||
type:'POST',
|
||||
data:{"verify":verify, "type":$('form input[name="type"]').val()},
|
||||
dataType:'json',
|
||||
success:function(result)
|
||||
{
|
||||
if(result.code == 0)
|
||||
{
|
||||
var intervalid = setInterval(function()
|
||||
{
|
||||
if(time_count == 0)
|
||||
{
|
||||
$this.button('reset');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win').button('reset');
|
||||
}
|
||||
$this.text($this.data('text'));
|
||||
$verify.val('');
|
||||
clearInterval(intervalid);
|
||||
} else {
|
||||
var send_msg = $this.data('send-text').replace(/{time}/, time_count--);
|
||||
$this.text(send_msg);
|
||||
}
|
||||
}, 1000);
|
||||
$verify_win.modal('close');
|
||||
} else {
|
||||
$this.button('reset');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win').button('reset');
|
||||
}
|
||||
Prompt(result.msg);
|
||||
}
|
||||
},
|
||||
error:function()
|
||||
{
|
||||
$this.button('reset');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win').button('reset');
|
||||
}
|
||||
Prompt('网络错误');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 新帐号验证码获取
|
||||
$('.verify-submit-new, .verify-submit-win-new').on('click', function()
|
||||
{
|
||||
var $this = $(this);
|
||||
var $accounts = $('#accounts');
|
||||
var $verify = $('#verify-img-value');
|
||||
var verify = '';
|
||||
if($accounts.hasClass('am-field-valid'))
|
||||
{
|
||||
// 是否需要先校验图片验证码
|
||||
if($this.data('verify') == 1)
|
||||
{
|
||||
// 开启图片验证码窗口
|
||||
$verify_win.modal('open');
|
||||
$verify.focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 验证码窗口操作按钮则更新按钮对象
|
||||
var is_win = $(this).data('win');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$this = $('.verify-submit-new');
|
||||
|
||||
// 验证码参数处理
|
||||
verify = $verify.val().replace(/\s+/g, '');
|
||||
|
||||
if(verify.length < 6)
|
||||
{
|
||||
Prompt($verify.data('validation-message'));
|
||||
$verify.focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 验证码时间间隔
|
||||
var time_count = parseInt($this.data('time'));
|
||||
|
||||
// 按钮交互
|
||||
$this.button('loading');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win-new').button('loading');
|
||||
}
|
||||
|
||||
// 发送验证码
|
||||
$.ajax({
|
||||
url:$('.verify-submit-new').data('url'),
|
||||
type:'POST',
|
||||
data:{"accounts":$accounts.val(), "verify":verify, "type":$('form input[name="type"]').val()},
|
||||
dataType:'json',
|
||||
success:function(result)
|
||||
{
|
||||
if(result.code == 0)
|
||||
{
|
||||
var intervalid = setInterval(function()
|
||||
{
|
||||
if(time_count == 0)
|
||||
{
|
||||
$this.button('reset');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win-new').button('reset');
|
||||
}
|
||||
$this.text($this.data('text'));
|
||||
$verify.val('');
|
||||
clearInterval(intervalid);
|
||||
} else {
|
||||
var send_msg = $this.data('send-text').replace(/{time}/, time_count--);
|
||||
$this.text(send_msg);
|
||||
}
|
||||
}, 1000);
|
||||
$verify_win.modal('close');
|
||||
} else {
|
||||
$this.button('reset');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win-new').button('reset');
|
||||
}
|
||||
Prompt(result.msg);
|
||||
}
|
||||
},
|
||||
error:function()
|
||||
{
|
||||
$this.button('reset');
|
||||
if(is_win == 1)
|
||||
{
|
||||
$('.verify-submit-win-new').button('reset');
|
||||
}
|
||||
Prompt('网络错误');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$verify_win.modal('close');
|
||||
$accounts.focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
10
shopxo.sql
10
shopxo.sql
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user