后台管理新增详情查看页面
parent
e74dcc9f16
commit
3fa0d80c05
|
|
@ -54,7 +54,7 @@ class Goods extends Common
|
|||
public function Index()
|
||||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
$params = input();
|
||||
|
||||
// 条件
|
||||
$where = GoodsService::GetAdminIndexWhere($params);
|
||||
|
|
@ -75,13 +75,12 @@ class Goods extends Common
|
|||
|
||||
// 获取数据列表
|
||||
$data_params = [
|
||||
'where' => $where,
|
||||
'm' => $page->GetPageStarNumber(),
|
||||
'n' => $number,
|
||||
'is_category' => 1,
|
||||
'is_admin_access' => 1,
|
||||
];
|
||||
$ret = GoodsService::GoodsList($data_params);
|
||||
'where' => $where,
|
||||
'm' => $page->GetPageStarNumber(),
|
||||
'n' => $number,
|
||||
'is_category' => 1,
|
||||
];
|
||||
$ret = GoodsService::GoodsList($data_params);
|
||||
|
||||
// 商品分类
|
||||
$this->assign('goods_category_list', GoodsService::GoodsCategoryAll());
|
||||
|
|
@ -101,6 +100,40 @@ class Goods extends Common
|
|||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-08-05T08:21:54+0800
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
|
||||
// 条件
|
||||
$where = GoodsService::GetAdminIndexWhere($params);
|
||||
|
||||
// 获取列表
|
||||
$data_params = array(
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
'where' => $where,
|
||||
'is_category' => 1,
|
||||
);
|
||||
$ret = GoodsService::GoodsList($data_params);
|
||||
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
|
||||
$this->assign('data', $data);
|
||||
|
||||
// 是否上下架
|
||||
$this->assign('common_is_shelves_list', lang('common_is_shelves_list'));
|
||||
|
||||
// 参数
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* [SaveInfo 商品添加/编辑页面]
|
||||
* @author Devil
|
||||
|
|
@ -117,8 +150,12 @@ class Goods extends Common
|
|||
$data = [];
|
||||
if(!empty($params['id']))
|
||||
{
|
||||
// 条件
|
||||
$where = GoodsService::GetAdminIndexWhere($params);
|
||||
|
||||
// 获取数据
|
||||
$data_params = [
|
||||
'where' => ['id'=>$params['id']],
|
||||
'where' => $where,
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
'is_photo' => 1,
|
||||
|
|
@ -165,6 +202,7 @@ class Goods extends Common
|
|||
$this->assign('editor_path_type', 'goods');
|
||||
|
||||
// 数据
|
||||
unset($params['id']);
|
||||
$this->assign('data', $data);
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch();
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ class Order extends Common
|
|||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
$params['admin'] = $this->admin;
|
||||
$params['user_type'] = 'admin';
|
||||
|
||||
// 分页
|
||||
|
|
@ -82,6 +81,7 @@ class Order extends Common
|
|||
'n' => $number,
|
||||
'where' => $where,
|
||||
'is_public' => 0,
|
||||
'user_type' => 'admin',
|
||||
);
|
||||
$data = OrderService::OrderList($data_params);
|
||||
$this->assign('data_list', $data['data']);
|
||||
|
|
@ -118,6 +118,39 @@ class Order extends Common
|
|||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-08-05T08:21:54+0800
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
$params['user_type'] = 'admin';
|
||||
|
||||
// 条件
|
||||
$where = OrderService::OrderListWhere($params);
|
||||
|
||||
// 获取列表
|
||||
$data_params = array(
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
'where' => $where,
|
||||
'is_public' => 0,
|
||||
'user_type' => 'admin',
|
||||
);
|
||||
$ret = OrderService::OrderList($data_params);
|
||||
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
|
||||
$this->assign('data', $data);
|
||||
|
||||
// 参数
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* [Delete 订单删除]
|
||||
* @author Devil
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ class Orderaftersale extends Common
|
|||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
$params['admin'] = $this->admin;
|
||||
$params['user_type'] = 'admin';
|
||||
|
||||
// 分页
|
||||
|
|
@ -97,6 +96,38 @@ class Orderaftersale extends Common
|
|||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-08-05T08:21:54+0800
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
// 参数
|
||||
$params = input();
|
||||
$params['user_type'] = 'admin';
|
||||
|
||||
// 条件
|
||||
$where = OrderAftersaleService::OrderAftersaleListWhere($params);
|
||||
|
||||
// 获取列表
|
||||
$data_params = array(
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
'where' => $where,
|
||||
'is_public' => 0,
|
||||
);
|
||||
$ret = OrderAftersaleService::OrderAftersaleList($data_params);
|
||||
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
|
||||
$this->assign('data', $data);
|
||||
|
||||
// 参数
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认
|
||||
* @author Devil
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- content start -->
|
||||
<div class="am-padding-sm">
|
||||
{{if !empty($data)}}
|
||||
<dl class="dl-content">
|
||||
<dt>标题名称</dt>
|
||||
<dd>
|
||||
<div class="goods">
|
||||
<a href="{{$data.goods_url}}" target="_blank" title="{{$data.title}}">
|
||||
<img src="{{$data['images']}}" class="am-img-thumbnail am-radius goods-images" />
|
||||
</a>
|
||||
<a href="{{$data.goods_url}}" target="_blank" title="{{$data.title}}" {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} class="am-nowrap-initial">{{$data.title}}</a>
|
||||
</div>
|
||||
</dd>
|
||||
|
||||
<dt>商品简述</dt>
|
||||
<dd class="am-nowrap-initial">{{$data.simple_desc}}</dd>
|
||||
|
||||
<dt>销售价格(元)</dt>
|
||||
<dd>
|
||||
{{$data.price}}
|
||||
{{if !empty($data['original_price']) and $data['original_price'] gt 0}}
|
||||
<br /><span class="am-badge am-radius">原价 {{$data.original_price}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>上下架</dt>
|
||||
<dd>{{$common_is_shelves_list[$data['is_shelves']]['name']}}</dd>
|
||||
|
||||
<dt>库存数量</dt>
|
||||
<dd>{{$data.inventory}} {{$data.inventory_unit}}</dd>
|
||||
|
||||
<dt>最低起购数量</dt>
|
||||
<dd>{{$data.buy_min_number}} {{$data.inventory_unit}}</dd>
|
||||
|
||||
<dt>单次最大购买数量</dt>
|
||||
<dd>
|
||||
{{if $data['buy_max_number'] eq 0}}
|
||||
<span class="cr-ddd">不限</span>
|
||||
{{else /}}
|
||||
{{$data.buy_max_number}} {{$data.inventory_unit}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>商品型号</dt>
|
||||
<dd>{{$data.model}}</dd>
|
||||
|
||||
<dt>品牌</dt>
|
||||
<dd>{{$data.brand_name}}</dd>
|
||||
|
||||
<dt>生产地</dt>
|
||||
<dd>{{$data.place_origin_name}}</dd>
|
||||
|
||||
<dt>商品分类</dt>
|
||||
<dd>{{$data.category_text}}</dd>
|
||||
|
||||
<dt>购买赠送积分</dt>
|
||||
<dd>{{$data.give_integral}}</dd>
|
||||
|
||||
<dt>扣减库存</dt>
|
||||
<dd>{{:lang('common_is_text_list')[$data['is_deduction_inventory']]['name']}}</dd>
|
||||
|
||||
<dt>访问次数</dt>
|
||||
<dd>{{$data.access_count}}</dd>
|
||||
|
||||
<dt>电脑端详情</dt>
|
||||
<dd>
|
||||
<div class="am-scrollable-vertical am-nowrap-initial">{{$data.content_web|raw}}</div>
|
||||
</dd>
|
||||
|
||||
<dt>虚拟商品展示数据</dt>
|
||||
<dd>
|
||||
<div class="am-scrollable-vertical am-nowrap-initial">{{$data.fictitious_goods_value|raw}}</div>
|
||||
</dd>
|
||||
|
||||
<dt>SEO标题</dt>
|
||||
<dd>{{$data.seo_title}}</dd>
|
||||
|
||||
<dt>SEO关键字</dt>
|
||||
<dd>{{$data.seo_keywords}}</dd>
|
||||
|
||||
<dt>SEO描述</dt>
|
||||
<dd>{{$data.seo_desc}}</dd>
|
||||
|
||||
<dt>创建时间</dt>
|
||||
<dd>{{$data.add_time}}</dd>
|
||||
|
||||
<dt>更新时间</dt>
|
||||
<dd>{{$data.upd_time}}</dd>
|
||||
</dl>
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<!-- content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
|
@ -146,7 +146,6 @@
|
|||
<th>库存数量</th>
|
||||
<th>商品型号</th>
|
||||
<th>品牌</th>
|
||||
<th class="am-text-center">更多</th>
|
||||
<th class="am-text-center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -156,13 +155,15 @@
|
|||
<tr id="data-list-{{$v.id}}" {{if $v['is_shelves'] eq 0}}class="am-active"{{/if}}>
|
||||
<td class="am-text-middle">{{$v.id}}</td>
|
||||
<td class="am-text-middle">
|
||||
<a href="{{$v.goods_url}}" target="_blank" title="{{$v.title}}">
|
||||
<img src="{{$v['images']}}" class="am-img-thumbnail am-radius goods-images" />
|
||||
</a>
|
||||
<a href="{{$v.goods_url}}" target="_blank" title="{{$v.title}}" {{if !empty($v['title_color'])}} style="color:{{$v.title_color}};" {{/if}} class="am-nowrap-initial">{{$v.title}}</a>
|
||||
{{if !empty($v['simple_desc'])}}
|
||||
<p class="am-text-danger am-nowrap-initial">{{$v.simple_desc}}</p>
|
||||
{{/if}}
|
||||
<div class="goods">
|
||||
<a href="{{$v.goods_url}}" target="_blank" title="{{$v.title}}">
|
||||
<img src="{{$v['images']}}" class="am-img-thumbnail am-radius goods-images" />
|
||||
</a>
|
||||
<a href="{{$v.goods_url}}" target="_blank" title="{{$v.title}}" {{if !empty($v['title_color'])}} style="color:{{$v.title_color}};" {{/if}} class="am-nowrap-initial">{{$v.title}}</a>
|
||||
{{if !empty($v['simple_desc'])}}
|
||||
<p class="am-text-danger am-nowrap-initial">{{$v.simple_desc}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
<td class="am-text-middle">
|
||||
{{$v.price}}
|
||||
|
|
@ -179,98 +180,12 @@
|
|||
<td class="am-text-middle">{{$v.inventory}} {{$v.inventory_unit}}</td>
|
||||
<td class="am-text-middle">{{$v.model}}</td>
|
||||
<td class="am-text-middle">{{$v.brand_name}}</td>
|
||||
<td class="am-text-middle">
|
||||
<p class="am-text-center xo-cursor-pr">
|
||||
<i class="am-icon-caret-down"></i>
|
||||
<span data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
|
||||
</p>
|
||||
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
|
||||
<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">
|
||||
<dl class="dl-content">
|
||||
<dt>标题名称</dt>
|
||||
<dd class="am-nowrap-initial">{{$v.title}}</dd>
|
||||
|
||||
<dt>商品简述</dt>
|
||||
<dd class="am-nowrap-initial">{{$v.simple_desc}}</dd>
|
||||
|
||||
<dt>销售价格(元)</dt>
|
||||
<dd>
|
||||
{{$v.price}}
|
||||
{{if !empty($v['original_price']) and $v['original_price'] gt 0}}
|
||||
<br /><span class="am-badge am-radius">原价 {{$v.original_price}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>上下架</dt>
|
||||
<dd>{{:lang('common_is_shelves_list')[$v['is_shelves']]['name']}}</dd>
|
||||
|
||||
<dt>库存数量</dt>
|
||||
<dd>{{$v.inventory}} {{$v.inventory_unit}}</dd>
|
||||
|
||||
<dt>最低起购数量</dt>
|
||||
<dd>{{$v.buy_min_number}} {{$v.inventory_unit}}</dd>
|
||||
|
||||
<dt>单次最大购买数量</dt>
|
||||
<dd>{{if $v['buy_max_number'] eq 0}}<span class="cr-ddd">不限</span>{{else /}}{{$v.buy_max_number}} {{$v.inventory_unit}}{{/if}}</dd>
|
||||
|
||||
<dt>商品型号</dt>
|
||||
<dd>{{$v.model}}</dd>
|
||||
|
||||
<dt>品牌</dt>
|
||||
<dd>{{$v.brand_name}}</dd>
|
||||
|
||||
<dt>生产地</dt>
|
||||
<dd>{{$v.place_origin_name}}</dd>
|
||||
|
||||
<dt>商品分类</dt>
|
||||
<dd>{{$v.category_text}}</dd>
|
||||
|
||||
<dt>购买赠送积分</dt>
|
||||
<dd>{{$v.give_integral}}</dd>
|
||||
|
||||
<dt>扣减库存</dt>
|
||||
<dd>{{:lang('common_is_text_list')[$v['is_deduction_inventory']]['name']}}</dd>
|
||||
|
||||
<dt>访问次数</dt>
|
||||
<dd>{{$v.access_count}}</dd>
|
||||
|
||||
<dt>电脑端详情</dt>
|
||||
<dd>
|
||||
<div class="am-scrollable-vertical am-nowrap-initial">{{$v.content_web|raw}}</div>
|
||||
</dd>
|
||||
|
||||
<dt>虚拟商品展示数据</dt>
|
||||
<dd>
|
||||
<div class="am-scrollable-vertical am-nowrap-initial">{{$v.fictitious_goods_value|raw}}</div>
|
||||
</dd>
|
||||
|
||||
<dt>SEO标题</dt>
|
||||
<dd>{{$v.seo_title}}</dd>
|
||||
|
||||
<dt>SEO关键字</dt>
|
||||
<dd>{{$v.seo_keywords}}</dd>
|
||||
|
||||
<dt>SEO描述</dt>
|
||||
<dd>{{$v.seo_desc}}</dd>
|
||||
|
||||
<dt>创建时间</dt>
|
||||
<dd>{{$v.add_time}}</dd>
|
||||
|
||||
<dt>更新时间</dt>
|
||||
<dd>{{$v.upd_time}}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="am-operate-grid">
|
||||
<div class="am-scrollable-vertical">
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/goods/detail', ['id'=>$v['id']])}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>详情</span>
|
||||
</button>
|
||||
<a class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block" href="{{:MyUrl('admin/goods/saveinfo', array_merge($params, ['id'=>$v['id']]))}}">
|
||||
<i class="am-icon-edit"></i>
|
||||
<span>编辑</span>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,248 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- content start -->
|
||||
<div class="am-padding-sm">
|
||||
{{if !empty($data)}}
|
||||
<dl class="dl-content">
|
||||
<dt>订单号</dt>
|
||||
<dd>
|
||||
{{if empty($data['order_no'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.order_no}}{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>订单模式</dt>
|
||||
<dd>
|
||||
{{if empty($data['order_model_name'])}}
|
||||
<span class="cr-ddd">未知</span>
|
||||
{{else /}}
|
||||
<span class="am-badge am-badge-primary am-radius" title="订单模式">{{$data.order_model_name}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>客户端类型</dt>
|
||||
<dd>
|
||||
{{if empty($data['client_type_name'])}}
|
||||
<span class="cr-ddd">未知</span>
|
||||
{{else /}}
|
||||
<span class="am-badge am-badge-secondary am-radius" title="客户端类型">{{$data.client_type_name}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>基础信息</dt>
|
||||
<dd>
|
||||
{{foreach $data.items as $vs}}
|
||||
<div class="goods-item">
|
||||
<div class="base">
|
||||
<a href="{{:MyUrl('index/goods/index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}">
|
||||
<img src="{{$vs['images']}}" class="am-img-thumbnail am-radius goods-images" />
|
||||
</a>
|
||||
<a href="{{:MyUrl('index/goods/index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}" {{if !empty($vs['title_color'])}} style="color:{{$vs.title_color}};" {{/if}} class="am-nowrap-initial">{{$vs.title}}</a>
|
||||
</div>
|
||||
<div class="other">
|
||||
{{if !empty($vs['model'])}}
|
||||
<span class="am-fl am-text-xs">
|
||||
型号:{{$vs.model}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if !empty($vs['spec_text'])}}
|
||||
<span class="am-fl am-text-xs">
|
||||
规格:{{$vs.spec_text}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if !empty($vs['spec_weight']) and $vs['spec_weight'] gt 0}}
|
||||
<span class="am-fl am-text-xs">
|
||||
重量:{{$vs.spec_weight}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if !empty($vs['spec_coding'])}}
|
||||
<span class="am-fl am-text-xs">
|
||||
编码:{{$vs.spec_coding}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if $vs['returned_quantity'] gt 0 or $vs['refund_price'] gt 0}}
|
||||
<span class="am-text-danger am-fr am-margin-left-sm">已退 {{$vs.returned_quantity}} / {{$vs.refund_price}}</span>
|
||||
{{/if}}
|
||||
<span class="am-fr">{{$vs.price}}x{{$vs.buy_number}}</span>
|
||||
</div>
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-vertical-0" />
|
||||
</div>
|
||||
{{/foreach}}
|
||||
<div class="am-margin-top-sm">{{$data.describe}}</div>
|
||||
</dd>
|
||||
|
||||
<dt>用户信息</dt>
|
||||
<dd class="user-info">
|
||||
{{if !empty($data['user'])}}
|
||||
<img src="{{$data.user.avatar}}" alt="{{$data.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left" />
|
||||
<ul class="user-base">
|
||||
<li>名称:{{if empty($data['user']['username'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.username}}{{/if}}</li>
|
||||
<li>昵称:{{if empty($data['user']['nickname'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.nickname}}{{/if}}</li>
|
||||
<li>手机:{{if empty($data['user']['mobile'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.mobile}}{{/if}}</li>
|
||||
<li>邮箱:{{if empty($data['user']['email'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.email}}{{/if}}</li>
|
||||
</ul>
|
||||
{{else /}}
|
||||
用户信息异常
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
{{if in_array($data['order_model'], [0,2])}}
|
||||
<dt>地址信息</dt>
|
||||
<dd>
|
||||
{{if !empty($data['address_data'])}}
|
||||
{{$data.address_data.name}}<br />
|
||||
{{$data.address_data.tel}}<br />
|
||||
{{$data.address_data.province_name}}
|
||||
{{$data.address_data.city_name}}
|
||||
{{$data.address_data.county_name}}
|
||||
{{$data.address_data.address}}
|
||||
{{else /}}
|
||||
<span class="cr-ddd">无信息</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
{{/if}}
|
||||
|
||||
{{if $data['order_model'] eq 2}}
|
||||
<dt>取货信息</dt>
|
||||
<dd>
|
||||
{{if !empty($data['extraction_data'])}}
|
||||
<p>
|
||||
<span>取货码:</span>
|
||||
{{if empty($data['extraction_data']['code'])}}
|
||||
<span class="am-text-danger">取货码不存在、请联系管理员</span>
|
||||
{{else /}}
|
||||
<span class="am-badge am-badge-success am-radius">{{$data.extraction_data.code}}</span>
|
||||
{{/if}}
|
||||
</p>
|
||||
{{if !empty($data['extraction_data']['images'])}}
|
||||
<p class="am-margin-top-xs">
|
||||
<img class="am-img-thumbnail" src="{{$data.extraction_data.images}}" alt="取货码" />
|
||||
</p>
|
||||
{{/if}}
|
||||
{{else /}}
|
||||
<span class="cr-ddd">无信息</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
{{/if}}
|
||||
|
||||
{{if $data['order_model'] eq 3}}
|
||||
<dt>密钥信息</dt>
|
||||
<dd>
|
||||
<ul class="am-list am-margin-bottom-0 fictitious-container">
|
||||
{{foreach $data.items as $goods}}
|
||||
<li class="am-g am-list-item-desced am-list-item-thumbed am-list-item-thumb-left">
|
||||
<div class="am-u-sm-2 am-list-thumb">
|
||||
<img src="{{$goods.images}}" alt="{{$goods.title}}" class="am-img-thumbnail am-radius" />
|
||||
</div>
|
||||
<div class="am-u-sm-10 am-list-item-text">
|
||||
{{if empty($goods['fictitious_goods_value'])}}
|
||||
<span>未配置数据</span>
|
||||
{{else /}}
|
||||
{{$goods.fictitious_goods_value|raw}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
</dd>
|
||||
{{/if}}
|
||||
|
||||
<dt>快递信息</dt>
|
||||
<dd>{{if empty($data['express_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.express_name}}<br />{{$data.express_number}}{{/if}}</dd>
|
||||
|
||||
<dt>支付状态</dt>
|
||||
<dd>{{if empty($data['pay_status_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.pay_status_name}}{{/if}}</dd>
|
||||
|
||||
<dt>订单状态</dt>
|
||||
<dd>{{if empty($data['status_name'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$data.status_name}}{{/if}}</dd>
|
||||
|
||||
<dt>支付方式</dt>
|
||||
<dd>{{if empty($data['payment_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.payment_name}}{{/if}}</dd>
|
||||
|
||||
<dt>用户备注</dt>
|
||||
<dd>{{if empty($data['user_note'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.user_note}}{{/if}}</dd>
|
||||
|
||||
<dt>订单金额(元)</dt>
|
||||
<dd>
|
||||
{{if empty($data['price'])}}
|
||||
<span class="cr-ddd">未填写</span>
|
||||
{{else /}}
|
||||
金额:{{$data.price}}<br />
|
||||
增加:{{$data.increase_price}}<br />
|
||||
优惠:{{$data.preferential_price}}<br />
|
||||
总价:{{$data.total_price}}<br />
|
||||
支付:{{$data.pay_price}}<br />
|
||||
退款:{{if $data['refund_price'] gt 0}}<span class="am-text-danger">{{$data.refund_price}}</span>{{else /}}{{$data.refund_price}}{{/if}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>扩展数据</dt>
|
||||
<dd>
|
||||
{{if empty($data['extension_data'])}}
|
||||
<span class="cr-ddd">无</span>
|
||||
{{else /}}
|
||||
{{foreach $data.extension_data as $extk=>$ext}}
|
||||
{{if $extk gt 0}}<br />{{/if}}
|
||||
{{$ext.name}} [{{$ext.tips}}]
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>最新售后</dt>
|
||||
<dd>
|
||||
{{if empty($data['aftersale_first'])}}
|
||||
<span class="cr-ddd">无</span>
|
||||
{{else /}}
|
||||
状态:{{$data.aftersale_first.status_text}}<br />
|
||||
类型:{{$data.aftersale_first.type_text}}<br />
|
||||
金额:<strong class="am-text-danger">{{$data.aftersale_first.price}}</strong><br />
|
||||
数量:{{$data.aftersale_first.number}}<br />
|
||||
原因:{{$data.aftersale_first.reason}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>购买总数</dt>
|
||||
<dd>{{if empty($data['buy_number_count'])}}<span class="cr-ddd">未知</span>{{else /}}{{$data.buy_number_count}}{{/if}}</dd>
|
||||
|
||||
<dt>退货总数</dt>
|
||||
<dd>{{if empty($data['returned_quantity'])}}<span class="cr-ddd">未退货</span>{{else /}}{{$data.returned_quantity}}{{/if}}</dd>
|
||||
|
||||
<dt>退款金额</dt>
|
||||
<dd>{{if empty($data['refund_price']) or $data['refund_price'] elt 0.00}}<span class="cr-ddd">未退款</span>{{else /}}<span class="am-text-danger">{{$data.refund_price}}{{/if}}</span></dd>
|
||||
|
||||
{{if $data['order_model'] eq 2}}
|
||||
<dt>自提取货码</dt>
|
||||
<dd>{{if empty($data['extraction_code'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.extraction_code}}{{/if}}</dd>
|
||||
{{/if}}
|
||||
|
||||
<dt>确认时间</dt>
|
||||
<dd>{{if empty($data['confirm_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.confirm_time}}{{/if}}</dd>
|
||||
|
||||
<dt>支付时间</dt>
|
||||
<dd>{{if empty($data['pay_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.pay_time}}{{/if}}</dd>
|
||||
|
||||
<dt>发货时间</dt>
|
||||
<dd>{{if empty($data['delivery_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.delivery_time}}{{/if}}</dd>
|
||||
|
||||
<dt>完成时间</dt>
|
||||
<dd>{{if empty($data['collect_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.collect_time}}{{/if}}</dd>
|
||||
|
||||
<dt>取消时间</dt>
|
||||
<dd>{{if empty($data['cancel_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.cancel_time}}{{/if}}</dd>
|
||||
|
||||
<dt>关闭时间</dt>
|
||||
<dd>{{if empty($data['close_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$data.close_time}}{{/if}}</dd>
|
||||
|
||||
<dt>创建时间</dt>
|
||||
<dd>{{$data.add_time}}</dd>
|
||||
|
||||
<dt>更新时间</dt>
|
||||
<dd>{{$data.upd_time}}</dd>
|
||||
</dl>
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<!-- content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
|
@ -143,9 +143,9 @@
|
|||
<th class="am-grid-sm">地址信息</th>
|
||||
<th>订单状态</th>
|
||||
<th class="am-grid-sm">订单金额(元)</th>
|
||||
<th class="am-grid-sm">最新售后</th>
|
||||
<th class="am-grid-sm">快递信息</th>
|
||||
<th class="am-grid-sm">扩展数据</th>
|
||||
<th class="am-text-center">更多</th>
|
||||
<th class="am-text-center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -182,7 +182,7 @@
|
|||
</div>
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-vertical-0" />
|
||||
{{/foreach}}
|
||||
<div class="goods-item">{{$v.describe}}</div>
|
||||
<div class="am-margin-top-sm">{{$v.describe}}</div>
|
||||
</td>
|
||||
<td class="am-text-middle user-info">
|
||||
{{if !empty($v['user'])}}
|
||||
|
|
@ -235,261 +235,33 @@
|
|||
退款:{{if $v['refund_price'] gt 0}}<span class="am-text-danger">{{$v.refund_price}}</span>{{else /}}{{$v.refund_price}}{{/if}}
|
||||
</td>
|
||||
<td class="am-text-middle">
|
||||
{{if empty($v['express_name'])}}
|
||||
<span class="cr-ddd">未填写</span>
|
||||
{{else /}}
|
||||
{{if !empty($v['aftersale_first'])}}
|
||||
状态:{{$v.aftersale_first.status_text}}<br />
|
||||
类型:{{$v.aftersale_first.type_text}}<br />
|
||||
金额:<strong class="am-text-danger">{{$v.aftersale_first.price}}</strong><br />
|
||||
数量:{{$v.aftersale_first.number}}<br />
|
||||
原因:{{$v.aftersale_first.reason}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="am-text-middle">
|
||||
{{if !empty($v['express_name'])}}
|
||||
{{$v.express_name}}<br />{{$v.express_number}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="am-text-middle">
|
||||
{{if empty($v['extension_data'])}}
|
||||
<span class="cr-ddd">无</span>
|
||||
{{else /}}
|
||||
{{if !empty($v['extension_data'])}}
|
||||
{{foreach $v.extension_data as $extk=>$ext}}
|
||||
{{if $extk gt 0}}<br />{{/if}}
|
||||
{{$ext.name}} [{{$ext.tips}}]
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="am-text-middle">
|
||||
<p class="am-text-center xo-cursor-pr">
|
||||
<i class="am-icon-caret-down"></i>
|
||||
<span data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
|
||||
</p>
|
||||
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
|
||||
<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">
|
||||
<dl class="dl-content">
|
||||
<dt>订单号</dt>
|
||||
<dd>
|
||||
{{if empty($v['order_no'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.order_no}}{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>订单模式</dt>
|
||||
<dd>
|
||||
{{if empty($v['order_model_name'])}}
|
||||
<span class="cr-ddd">未知</span>
|
||||
{{else /}}
|
||||
<span class="am-badge am-badge-primary am-radius" title="订单模式">{{$v.order_model_name}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>客户端类型</dt>
|
||||
<dd>
|
||||
{{if empty($v['client_type_name'])}}
|
||||
<span class="cr-ddd">未知</span>
|
||||
{{else /}}
|
||||
<span class="am-badge am-badge-secondary am-radius" title="客户端类型">{{$v.client_type_name}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>基础信息</dt>
|
||||
<dd>
|
||||
{{foreach $v.items as $vs}}
|
||||
<div class="goods-item">
|
||||
<div class="base">
|
||||
<a href="{{:MyUrl('index/goods/index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}">
|
||||
<img src="{{$vs['images']}}" class="am-img-thumbnail am-radius goods-images" />
|
||||
</a>
|
||||
<a href="{{:MyUrl('index/goods/index', ['id'=>$vs['goods_id']])}}" target="_blank" title="{{$vs.title}}" {{if !empty($vs['title_color'])}} style="color:{{$vs.title_color}};" {{/if}} class="am-nowrap-initial">{{$vs.title}}</a>
|
||||
</div>
|
||||
<div class="other">
|
||||
{{if !empty($vs['model'])}}
|
||||
<span class="am-fl am-text-xs">
|
||||
型号:{{$vs.model}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if !empty($vs['spec_text'])}}
|
||||
<span class="am-fl am-text-xs">
|
||||
规格:{{$vs.spec_text}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if !empty($vs['spec_weight']) and $vs['spec_weight'] gt 0}}
|
||||
<span class="am-fl am-text-xs">
|
||||
重量:{{$vs.spec_weight}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if !empty($vs['spec_coding'])}}
|
||||
<span class="am-fl am-text-xs">
|
||||
编码:{{$vs.spec_coding}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{if $vs['returned_quantity'] gt 0 or $vs['refund_price'] gt 0}}
|
||||
<span class="am-text-danger am-fr am-margin-left-sm">已退 {{$vs.returned_quantity}} / {{$vs.refund_price}}</span>
|
||||
{{/if}}
|
||||
<span class="am-fr">{{$vs.price}}x{{$vs.buy_number}}</span>
|
||||
</div>
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-vertical-0" />
|
||||
</div>
|
||||
{{/foreach}}
|
||||
<div class="goods-item">{{$v.describe}}</div>
|
||||
</dd>
|
||||
|
||||
<dt>用户信息</dt>
|
||||
<dd class="user-info">
|
||||
{{if !empty($v['user'])}}
|
||||
<img src="{{$v.user.avatar}}" alt="{{$v.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left" />
|
||||
<ul class="user-base">
|
||||
<li>名称:{{if empty($v['user']['username'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.username}}{{/if}}</li>
|
||||
<li>昵称:{{if empty($v['user']['nickname'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.nickname}}{{/if}}</li>
|
||||
<li>手机:{{if empty($v['user']['mobile'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.mobile}}{{/if}}</li>
|
||||
<li>邮箱:{{if empty($v['user']['email'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.email}}{{/if}}</li>
|
||||
</ul>
|
||||
{{else /}}
|
||||
用户信息异常
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
{{if in_array($v['order_model'], [0,2])}}
|
||||
<dt>地址信息</dt>
|
||||
<dd>
|
||||
{{if !empty($v['address_data'])}}
|
||||
{{$v.address_data.name}}<br />
|
||||
{{$v.address_data.tel}}<br />
|
||||
{{$v.address_data.province_name}}
|
||||
{{$v.address_data.city_name}}
|
||||
{{$v.address_data.county_name}}
|
||||
{{$v.address_data.address}}
|
||||
{{else /}}
|
||||
<span class="cr-ddd">无信息</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
{{/if}}
|
||||
|
||||
{{if $v['order_model'] eq 2}}
|
||||
<dt>取货信息</dt>
|
||||
<dd>
|
||||
{{if !empty($v['extraction_data'])}}
|
||||
<p>
|
||||
<span>取货码:</span>
|
||||
{{if empty($v['extraction_data']['code'])}}
|
||||
<span class="am-text-danger">取货码不存在、请联系管理员</span>
|
||||
{{else /}}
|
||||
<span class="am-badge am-badge-success am-radius">{{$v.extraction_data.code}}</span>
|
||||
{{/if}}
|
||||
</p>
|
||||
{{if !empty($v['extraction_data']['images'])}}
|
||||
<p class="am-margin-top-xs">
|
||||
<img class="am-img-thumbnail" src="{{$v.extraction_data.images}}" alt="取货码" />
|
||||
</p>
|
||||
{{/if}}
|
||||
{{else /}}
|
||||
<span class="cr-ddd">无信息</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
{{/if}}
|
||||
|
||||
{{if $v['order_model'] eq 3}}
|
||||
<dt>密钥信息</dt>
|
||||
<dd>
|
||||
<ul class="am-list am-margin-bottom-0 fictitious-container">
|
||||
{{foreach $v.items as $goods}}
|
||||
<li class="am-g am-list-item-desced am-list-item-thumbed am-list-item-thumb-left">
|
||||
<div class="am-u-sm-2 am-list-thumb">
|
||||
<img src="{{$goods.images}}" alt="{{$goods.title}}" class="am-img-thumbnail am-radius" />
|
||||
</div>
|
||||
<div class="am-u-sm-10 am-list-item-text">
|
||||
{{if empty($goods['fictitious_goods_value'])}}
|
||||
<span>未配置数据</span>
|
||||
{{else /}}
|
||||
{{$goods.fictitious_goods_value|raw}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
</dd>
|
||||
{{/if}}
|
||||
|
||||
<dt>快递信息</dt>
|
||||
<dd>{{if empty($v['express_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.express_name}}<br />{{$v.express_number}}{{/if}}</dd>
|
||||
|
||||
<dt>支付状态</dt>
|
||||
<dd>{{if empty($v['pay_status_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.pay_status_name}}{{/if}}</dd>
|
||||
|
||||
<dt>订单状态</dt>
|
||||
<dd>{{if empty($v['status_name'])}}<span class="cr-ddd">未设置</span>{{else /}}{{$v.status_name}}{{/if}}</dd>
|
||||
|
||||
<dt>支付方式</dt>
|
||||
<dd>{{if empty($v['payment_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.payment_name}}{{/if}}</dd>
|
||||
|
||||
<dt>用户备注</dt>
|
||||
<dd>{{if empty($v['user_note'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.user_note}}{{/if}}</dd>
|
||||
|
||||
<dt>订单金额(元)</dt>
|
||||
<dd>
|
||||
{{if empty($v['price'])}}
|
||||
<span class="cr-ddd">未填写</span>
|
||||
{{else /}}
|
||||
金额:{{$v.price}}<br />
|
||||
增加:{{$v.increase_price}}<br />
|
||||
优惠:{{$v.preferential_price}}<br />
|
||||
总价:{{$v.total_price}}<br />
|
||||
支付:{{$v.pay_price}}<br />
|
||||
退款:{{if $v['refund_price'] gt 0}}<span class="am-text-danger">{{$v.refund_price}}</span>{{else /}}{{$v.refund_price}}{{/if}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>扩展数据</dt>
|
||||
<dd>
|
||||
{{if empty($v['extension_data'])}}
|
||||
<span class="cr-ddd">无</span>
|
||||
{{else /}}
|
||||
{{foreach $v.extension_data as $extk=>$ext}}
|
||||
{{if $extk gt 0}}<br />{{/if}}
|
||||
{{$ext.name}} [{{$ext.tips}}]
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>购买总数</dt>
|
||||
<dd>{{if empty($v['buy_number_count'])}}<span class="cr-ddd">未知</span>{{else /}}{{$v.buy_number_count}}{{/if}}</dd>
|
||||
|
||||
<dt>退货总数</dt>
|
||||
<dd>{{if empty($v['returned_quantity'])}}<span class="cr-ddd">未退货</span>{{else /}}{{$v.returned_quantity}}{{/if}}</dd>
|
||||
|
||||
<dt>退款金额</dt>
|
||||
<dd>{{if empty($v['refund_price']) or $v['refund_price'] elt 0.00}}<span class="cr-ddd">未退款</span>{{else /}}<span class="am-text-danger">{{$v.refund_price}}{{/if}}</span></dd>
|
||||
|
||||
{{if $v['order_model'] eq 2}}
|
||||
<dt>自提取货码</dt>
|
||||
<dd>{{if empty($v['extraction_code'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.extraction_code}}{{/if}}</dd>
|
||||
{{/if}}
|
||||
|
||||
<dt>确认时间</dt>
|
||||
<dd>{{if empty($v['confirm_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.confirm_time}}{{/if}}</dd>
|
||||
|
||||
<dt>支付时间</dt>
|
||||
<dd>{{if empty($v['pay_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.pay_time}}{{/if}}</dd>
|
||||
|
||||
<dt>发货时间</dt>
|
||||
<dd>{{if empty($v['delivery_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.delivery_time}}{{/if}}</dd>
|
||||
|
||||
<dt>完成时间</dt>
|
||||
<dd>{{if empty($v['collect_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.collect_time}}{{/if}}</dd>
|
||||
|
||||
<dt>取消时间</dt>
|
||||
<dd>{{if empty($v['cancel_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.cancel_time}}{{/if}}</dd>
|
||||
|
||||
<dt>关闭时间</dt>
|
||||
<dd>{{if empty($v['close_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.close_time}}{{/if}}</dd>
|
||||
|
||||
<dt>创建时间</dt>
|
||||
<dd>{{$v.add_time}}</dd>
|
||||
|
||||
<dt>更新时间</dt>
|
||||
<dd>{{$v.upd_time}}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="am-operate-grid">
|
||||
<div class="am-scrollable-vertical">
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/order/detail', ['id'=>$v['id']])}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>详情</span>
|
||||
</button>
|
||||
{{if in_array($v['status'], [0])}}
|
||||
<button class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/order/confirm')}}" data-id="{{$v.id}}" data-value="{{$v.user_id}}" data-view="reload" data-msg="是否操作收货,操作后不可恢复!">
|
||||
<i class="am-icon-check-circle-o"></i>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,114 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- content start -->
|
||||
<div class="am-padding-sm">
|
||||
{{if !empty($data)}}
|
||||
<dl class="dl-content">
|
||||
<dt>商品信息</dt>
|
||||
<dd>
|
||||
<div class="goods-detail">
|
||||
<a href="{{$data.order_data.items.goods_url}}" target="_blank">
|
||||
<img src="{{$data.order_data.items.images}}" class="am-img-thumbnail am-radius" />
|
||||
</a>
|
||||
<div class="goods-base">
|
||||
<a href="{{$data.order_data.items.goods_url}}" target="_blank" class="am-nowrap-initial am-text-truncate-2 goods-title">{{$data.order_data.items.title}}</a>
|
||||
{{if !empty($data.order_data.items.spec)}}
|
||||
<ul class="goods-spec am-margin-top-xs">
|
||||
{{foreach $data.order_data.items.spec as $spec}}
|
||||
<li>{{$spec.type}}:{{$spec.value}}</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{if $data.order_data.items.original_price gt 0}}
|
||||
<p class="original-price">{{$price_symbol}}{{$data.order_data.items.original_price}}</p>
|
||||
{{/if}}
|
||||
<p class="line-price">{{$price_symbol}}{{$data.order_data.items.price}} x {{$data.order_data.items.buy_number}}</p>
|
||||
</dd>
|
||||
|
||||
<dt>用户信息</dt>
|
||||
<dd class="user-info">
|
||||
{{if !empty($data['user'])}}
|
||||
<img src="{{$data.user.avatar}}" alt="{{$data.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left" />
|
||||
<ul class="user-base">
|
||||
<li>名称:{{if empty($data['user']['username'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.username}}{{/if}}</li>
|
||||
<li>昵称:{{if empty($data['user']['nickname'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.nickname}}{{/if}}</li>
|
||||
<li>手机:{{if empty($data['user']['mobile'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.mobile}}{{/if}}</li>
|
||||
<li>邮箱:{{if empty($data['user']['email'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.email}}{{/if}}</li>
|
||||
</ul>
|
||||
{{else /}}
|
||||
用户信息异常
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>申请信息</dt>
|
||||
<dd>
|
||||
类型:{{$data.type_text}}<br />
|
||||
原因:{{$data.reason}}<br />
|
||||
数量:{{$data.number}}<br />
|
||||
金额:<span class="am-text-danger">{{$price_symbol}}{{$data.price}}</span><br />
|
||||
说明:{{$data.msg}}<br />
|
||||
时间:{{$data.apply_time_time}}
|
||||
</dd>
|
||||
|
||||
<dt>凭证</dt>
|
||||
<dd>
|
||||
{{if !empty($data['images'])}}
|
||||
{{foreach $data.images as $img}}
|
||||
<a href="{{$img}}" target="_blank">
|
||||
<img src="{{$img}}" class="am-img-thumbnail" width="80" height="80" />
|
||||
</a>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>状态</dt>
|
||||
<dd>
|
||||
<p>{{$data.status_text}}</p>
|
||||
{{if $data['status'] eq 3 and !empty($data['refundment_text'])}}
|
||||
<span class="am-badge am-badge-success am-margin-top-xs">{{$data.refundment_text}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
<dt>拒绝原因</dt>
|
||||
<dd class="am-text-danger">{{$data.refuse_reason}}</dd>
|
||||
|
||||
<dt>快递信息</dt>
|
||||
<dd>
|
||||
{{if $data['type'] eq 1 and in_array($data['status'], [2,3])}}
|
||||
快递:{{$data.express_name}}<br />
|
||||
单号:{{$data.express_number}}<br />
|
||||
时间:{{$data.delivery_time_time}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>申请时间</dt>
|
||||
<dd>{{$data.apply_time_time}}</dd>
|
||||
|
||||
<dt>确认时间</dt>
|
||||
<dd>{{$data.confirm_time_time}}</dd>
|
||||
|
||||
<dt>退货时间</dt>
|
||||
<dd>{{$data.delivery_time_time}}</dd>
|
||||
|
||||
<dt>审核时间</dt>
|
||||
<dd>{{$data.audit_time_time}}</dd>
|
||||
|
||||
<dt>取消时间</dt>
|
||||
<dd>{{$data.cancel_time_time}}</dd>
|
||||
|
||||
<dt>添加时间</dt>
|
||||
<dd>{{$data.add_time_time}}</dd>
|
||||
|
||||
<dt>更新时间</dt>
|
||||
<dd>{{$data.upd_time_time}}</dd>
|
||||
</dl>
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<!-- content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
|
@ -107,7 +107,6 @@
|
|||
<th class="am-grid-sm">凭证</th>
|
||||
<th>状态</th>
|
||||
<th class="am-grid-sm">快递信息</th>
|
||||
<th class="am-text-center">更多</th>
|
||||
<th class="am-text-center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -196,176 +195,64 @@
|
|||
时间:{{$v.delivery_time_time}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="am-text-middle">
|
||||
<p class="am-text-center xo-cursor-pr">
|
||||
<i class="am-icon-caret-down"></i>
|
||||
<span data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
|
||||
</p>
|
||||
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
|
||||
<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">
|
||||
<dl class="dl-content">
|
||||
<dt>商品信息</dt>
|
||||
<dd>
|
||||
<div class="goods-detail">
|
||||
<a href="{{$v.order_data.items.goods_url}}" target="_blank">
|
||||
<img src="{{$v.order_data.items.images}}" class="am-img-thumbnail am-radius" />
|
||||
</a>
|
||||
<div class="goods-base">
|
||||
<a href="{{$v.order_data.items.goods_url}}" target="_blank" class="am-nowrap-initial am-text-truncate-2 goods-title">{{$v.order_data.items.title}}</a>
|
||||
{{if !empty($v.order_data.items.spec)}}
|
||||
<ul class="goods-spec am-margin-top-xs">
|
||||
{{foreach $v.order_data.items.spec as $spec}}
|
||||
<li>{{$spec.type}}:{{$spec.value}}</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{if $v.order_data.items.original_price gt 0}}
|
||||
<p class="original-price">{{$price_symbol}}{{$v.order_data.items.original_price}}</p>
|
||||
{{/if}}
|
||||
<p class="line-price">{{$price_symbol}}{{$v.order_data.items.price}} x {{$v.order_data.items.buy_number}}</p>
|
||||
</dd>
|
||||
|
||||
<dt>用户信息</dt>
|
||||
<dd class="user-info">
|
||||
{{if !empty($v['user'])}}
|
||||
<img src="{{$v.user.avatar}}" alt="{{$v.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left" />
|
||||
<ul class="user-base">
|
||||
<li>名称:{{if empty($v['user']['username'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.username}}{{/if}}</li>
|
||||
<li>昵称:{{if empty($v['user']['nickname'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.nickname}}{{/if}}</li>
|
||||
<li>手机:{{if empty($v['user']['mobile'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.mobile}}{{/if}}</li>
|
||||
<li>邮箱:{{if empty($v['user']['email'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$v.user.email}}{{/if}}</li>
|
||||
</ul>
|
||||
{{else /}}
|
||||
用户信息异常
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>申请信息</dt>
|
||||
<dd>
|
||||
类型:{{$v.type_text}}<br />
|
||||
原因:{{$v.reason}}<br />
|
||||
数量:{{$v.number}}<br />
|
||||
金额:<span class="am-text-danger">{{$price_symbol}}{{$v.price}}</span><br />
|
||||
说明:{{$v.msg}}<br />
|
||||
时间:{{$v.apply_time_time}}
|
||||
</dd>
|
||||
|
||||
<dt>凭证</dt>
|
||||
<dd>
|
||||
{{if !empty($v['images'])}}
|
||||
{{foreach $v.images as $img}}
|
||||
<a href="{{$img}}" target="_blank">
|
||||
<img src="{{$img}}" class="am-img-thumbnail" width="80" height="80" />
|
||||
</a>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>状态</dt>
|
||||
<dd>
|
||||
<p>{{$v.status_text}}</p>
|
||||
{{if $v['status'] eq 3 and !empty($v['refundment_text'])}}
|
||||
<span class="am-badge am-badge-success am-margin-top-xs">{{$v.refundment_text}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
<dt>拒绝原因</dt>
|
||||
<dd class="am-text-danger">{{$v.refuse_reason}}</dd>
|
||||
|
||||
<dt>快递信息</dt>
|
||||
<dd>
|
||||
{{if $v['type'] eq 1 and in_array($v['status'], [2,3])}}
|
||||
快递:{{$v.express_name}}<br />
|
||||
单号:{{$v.express_number}}<br />
|
||||
时间:{{$v.delivery_time_time}}
|
||||
{{/if}}
|
||||
</dd>
|
||||
|
||||
<dt>申请时间</dt>
|
||||
<dd>{{$v.apply_time_time}}</dd>
|
||||
|
||||
<dt>确认时间</dt>
|
||||
<dd>{{$v.confirm_time_time}}</dd>
|
||||
|
||||
<dt>退货时间</dt>
|
||||
<dd>{{$v.delivery_time_time}}</dd>
|
||||
|
||||
<dt>审核时间</dt>
|
||||
<dd>{{$v.audit_time_time}}</dd>
|
||||
|
||||
<dt>取消时间</dt>
|
||||
<dd>{{$v.cancel_time_time}}</dd>
|
||||
|
||||
<dt>添加时间</dt>
|
||||
<dd>{{$v.add_time_time}}</dd>
|
||||
|
||||
<dt>更新时间</dt>
|
||||
<dd>{{$v.upd_time_time}}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="am-operate-grid">
|
||||
<div class="am-scrollable-vertical">
|
||||
{{if $v['status'] eq 0 and $v['type'] eq 1}}
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/orderaftersale/confirm')}}" data-id="{{$v.id}}" data-view="reload">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>确认</span>
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/orderaftersale/detail', ['id'=>$v['id']])}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>详情</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $v['status'] eq 2}}
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-audit" data-json='{{:str_replace("'", '', json_encode($v))}}'>
|
||||
<i class="am-icon-gavel"></i>
|
||||
<span>审核</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if in_array($v['status'], [0,2])}}
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-refuse" data-json='{{:str_replace("'", '', json_encode($v))}}'>
|
||||
<i class="am-icon-warning"></i>
|
||||
<span>拒绝</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if in_array($v['status'], [1,2])}}
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax submit-cancel" data-url="{{:MyUrl('admin/orderaftersale/cancel')}}" data-id="{{$v.id}}" data-view="reload">
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>取消</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if in_array($v['status'], [4,5])}}
|
||||
<button class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:MyUrl('admin/orderaftersale/delete')}}" data-id="{{$v.id}}">
|
||||
<i class="am-icon-trash-o"></i>
|
||||
<span>删除</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $v['status'] eq 0 and $v['type'] eq 1}}
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-ajax" data-url="{{:MyUrl('admin/orderaftersale/confirm')}}" data-id="{{$v.id}}" data-view="reload">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>确认</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $v['status'] eq 2}}
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-audit" data-json='{{:str_replace("'", '', json_encode($v))}}'>
|
||||
<i class="am-icon-gavel"></i>
|
||||
<span>审核</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if in_array($v['status'], [0,2])}}
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-refuse" data-json='{{:str_replace("'", '', json_encode($v))}}'>
|
||||
<i class="am-icon-warning"></i>
|
||||
<span>拒绝</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if in_array($v['status'], [1,2])}}
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax submit-cancel" data-url="{{:MyUrl('admin/orderaftersale/cancel')}}" data-id="{{$v.id}}" data-view="reload">
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>取消</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if in_array($v['status'], [4,5])}}
|
||||
<button class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:MyUrl('admin/orderaftersale/delete')}}" data-id="{{$v.id}}">
|
||||
<i class="am-icon-trash-o"></i>
|
||||
<span>删除</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
<!-- 订单售后列表操作钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_admin_orderaftersale_list_operate</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{php}}
|
||||
$hook_name = 'plugins_view_admin_orderaftersale_list_operate';
|
||||
$hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>true, 'id'=>$v['id'], 'data'=>$v]);
|
||||
if(!empty($hook_data) && is_array($hook_data))
|
||||
{
|
||||
foreach($hook_data as $hook)
|
||||
<!-- 订单售后列表操作钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_admin_orderaftersale_list_operate</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{php}}
|
||||
$hook_name = 'plugins_view_admin_orderaftersale_list_operate';
|
||||
$hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>true, 'id'=>$v['id'], 'data'=>$v]);
|
||||
if(!empty($hook_data) && is_array($hook_data))
|
||||
{
|
||||
if(is_string($hook) || is_int($hook))
|
||||
foreach($hook_data as $hook)
|
||||
{
|
||||
echo htmlspecialchars_decode($hook);
|
||||
if(is_string($hook) || is_int($hook))
|
||||
{
|
||||
echo htmlspecialchars_decode($hook);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
{{/php}}
|
||||
{{/php}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
|
|
|
|||
|
|
@ -979,6 +979,12 @@ class GoodsService
|
|||
['is_delete_time', '=', 0],
|
||||
];
|
||||
|
||||
// id
|
||||
if(!empty($params['id']))
|
||||
{
|
||||
$where[] = ['id', '=', intval($params['id'])];
|
||||
}
|
||||
|
||||
// 模糊
|
||||
if(!empty($params['keywords']))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -390,9 +390,9 @@ class OrderAftersaleService
|
|||
$data = Db::name('OrderAftersale')->field($field)->where($where)->limit($m, $n)->order($order_by)->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
$common_order_aftersale_type_list = lang('common_order_aftersale_type_list');
|
||||
$common_order_aftersale_status_list = lang('common_order_aftersale_status_list');
|
||||
$common_order_aftersale_refundment_list = lang('common_order_aftersale_refundment_list');
|
||||
$type_list = lang('common_order_aftersale_type_list');
|
||||
$status_list = lang('common_order_aftersale_status_list');
|
||||
$refundment_list = lang('common_order_aftersale_refundment_list');
|
||||
foreach($data as &$v)
|
||||
{
|
||||
// 订单商品
|
||||
|
|
@ -409,13 +409,13 @@ class OrderAftersaleService
|
|||
}
|
||||
|
||||
// 类型
|
||||
$v['type_text'] = $common_order_aftersale_type_list[$v['type']]['name'];
|
||||
$v['type_text'] = array_key_exists($v['type'], $type_list) ? $type_list[$v['type']]['name'] : '';
|
||||
|
||||
// 状态
|
||||
$v['status_text'] = $common_order_aftersale_status_list[$v['status']]['name'];
|
||||
$v['status_text'] = array_key_exists($v['status'], $status_list) ? $status_list[$v['status']]['name'] : '';
|
||||
|
||||
// 退款方式
|
||||
$v['refundment_text'] = $common_order_aftersale_refundment_list[$v['refundment']]['name'];
|
||||
$v['refundment_text'] = array_key_exists($v['refundment'], $refundment_list) ? $refundment_list[$v['refundment']]['name'] : '';
|
||||
|
||||
// 图片
|
||||
if(!empty($v['images']))
|
||||
|
|
|
|||
|
|
@ -892,47 +892,7 @@ class OrderService
|
|||
// 订单详情
|
||||
if($is_items == 1)
|
||||
{
|
||||
$items = Db::name('OrderDetail')->where(['order_id'=>$v['id']])->select();
|
||||
if(!empty($items))
|
||||
{
|
||||
foreach($items as &$vs)
|
||||
{
|
||||
// 商品信息
|
||||
$vs['images'] = ResourcesService::AttachmentPathViewHandle($vs['images']);
|
||||
$vs['goods_url'] = MyUrl('index/goods/index', ['id'=>$vs['goods_id']]);
|
||||
$vs['total_price'] = $vs['buy_number']*$vs['price'];
|
||||
|
||||
// 规格
|
||||
if(!empty($vs['spec']))
|
||||
{
|
||||
$vs['spec'] = json_decode($vs['spec'], true);
|
||||
if(!empty($vs['spec']) && is_array($vs['spec']))
|
||||
{
|
||||
$vs['spec_text'] = implode(',', array_map(function($spec)
|
||||
{
|
||||
return $spec['type'].':'.$spec['value'];
|
||||
}, $vs['spec']));
|
||||
}
|
||||
} else {
|
||||
$vs['spec'] = null;
|
||||
$vs['spec_text'] = null;
|
||||
}
|
||||
|
||||
// 虚拟销售商品 - 虚拟信息处理
|
||||
if($v['order_model'] == 3 && $v['pay_status'] == 1 && in_array($v['status'], [3,4]))
|
||||
{
|
||||
$vs['fictitious_goods_value'] = Db::name('OrderFictitiousValue')->where(['order_detail_id'=>$vs['id']])->value('value');
|
||||
}
|
||||
|
||||
// 是否获取最新一条售后信息
|
||||
if($is_orderaftersale == 1)
|
||||
{
|
||||
$orderaftersale = Db::name('OrderAftersale')->where(['order_detail_id'=>$vs['id']])->order('id desc')->find();
|
||||
$vs['orderaftersale'] = $orderaftersale;
|
||||
$vs['orderaftersale_btn_text'] = self::OrderAftersaleStatusBtnText($v['status'], $orderaftersale);
|
||||
}
|
||||
}
|
||||
}
|
||||
$items = self::OrderItemList($v['id'], $v['order_model'], $v['status'], $v['pay_status'], $is_orderaftersale);
|
||||
$v['items'] = $items;
|
||||
$v['items_count'] = count($items);
|
||||
|
||||
|
|
@ -940,6 +900,13 @@ class OrderService
|
|||
$v['describe'] = '共'.$v['buy_number_count'].'件 合计:'.config('shopxo.price_symbol').$v['total_price'].'元';
|
||||
}
|
||||
|
||||
// 管理员读取
|
||||
if($user_type == 'admin')
|
||||
{
|
||||
// 获取最新一条售后订单
|
||||
$v['aftersale_first'] = self::OrderAftersaleFirst($v['id']);
|
||||
}
|
||||
|
||||
// 订单处理后钩子
|
||||
$hook_name = 'plugins_service_order_handle_end';
|
||||
$ret = HookReturnHandle(Hook::listen($hook_name, [
|
||||
|
|
@ -959,6 +926,91 @@ class OrderService
|
|||
return DataReturn('success', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单最新一条售后
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-05-15
|
||||
* @desc description
|
||||
* @param [int] $order_id [订单 id]
|
||||
*/
|
||||
public static function OrderAftersaleFirst($order_id)
|
||||
{
|
||||
$data = Db::name('OrderAftersale')->where(['order_id'=>$order_id])->field('status,type,number,price,reason,msg')->order('id desc')->find();
|
||||
if(!empty($data))
|
||||
{
|
||||
$type_list = lang('common_order_aftersale_type_list');
|
||||
$status_list = lang('common_order_aftersale_status_list');
|
||||
|
||||
// 类型
|
||||
$data['type_text'] = array_key_exists($data['type'], $type_list) ? $type_list[$data['type']]['name'] : '';
|
||||
|
||||
// 状态
|
||||
$data['status_text'] = array_key_exists($data['status'], $status_list) ? $status_list[$data['status']]['name'] : '';
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单详情列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-05-15
|
||||
* @desc description
|
||||
* @param [int] $order_id [订单 id]
|
||||
* @param [int] $order_model [订单模式]
|
||||
* @param [int] $status [订单状态]
|
||||
* @param [int] $pay_status [支付状态]
|
||||
* @param [int] $is_orderaftersale [是否读取订单售后(0否, 1是)]
|
||||
*/
|
||||
public static function OrderItemList($order_id, $order_model, $status, $pay_status, $is_orderaftersale = 0)
|
||||
{
|
||||
$items = Db::name('OrderDetail')->where(['order_id'=>$order_id])->select();
|
||||
if(!empty($items))
|
||||
{
|
||||
foreach($items as &$vs)
|
||||
{
|
||||
// 商品信息
|
||||
$vs['images'] = ResourcesService::AttachmentPathViewHandle($vs['images']);
|
||||
$vs['goods_url'] = MyUrl('index/goods/index', ['id'=>$vs['goods_id']]);
|
||||
$vs['total_price'] = $vs['buy_number']*$vs['price'];
|
||||
|
||||
// 规格
|
||||
if(!empty($vs['spec']))
|
||||
{
|
||||
$vs['spec'] = json_decode($vs['spec'], true);
|
||||
if(!empty($vs['spec']) && is_array($vs['spec']))
|
||||
{
|
||||
$vs['spec_text'] = implode(',', array_map(function($spec)
|
||||
{
|
||||
return $spec['type'].':'.$spec['value'];
|
||||
}, $vs['spec']));
|
||||
}
|
||||
} else {
|
||||
$vs['spec'] = null;
|
||||
$vs['spec_text'] = null;
|
||||
}
|
||||
|
||||
// 虚拟销售商品 - 虚拟信息处理
|
||||
if($order_model == 3 && $pay_status == 1 && in_array($status, [3,4]))
|
||||
{
|
||||
$vs['fictitious_goods_value'] = Db::name('OrderFictitiousValue')->where(['order_detail_id'=>$vs['id']])->value('value');
|
||||
}
|
||||
|
||||
// 是否获取最新一条售后信息
|
||||
if($is_orderaftersale == 1)
|
||||
{
|
||||
$orderaftersale = Db::name('OrderAftersale')->where(['order_detail_id'=>$vs['id']])->order('id desc')->find();
|
||||
$vs['orderaftersale'] = $orderaftersale;
|
||||
$vs['orderaftersale_btn_text'] = self::OrderAftersaleStatusBtnText($status, $orderaftersale);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单自提信息
|
||||
* @author Devil
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ return [
|
|||
// 应用地址
|
||||
'app_host' => '',
|
||||
// 应用调试模式
|
||||
'app_debug' => false,
|
||||
'app_debug' => true,
|
||||
// 应用Trace
|
||||
'app_trace' => false,
|
||||
// 是否支持多模块
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,13 +1,20 @@
|
|||
/**
|
||||
* 列表
|
||||
*/
|
||||
.goods-list.am-table .goods-images {
|
||||
.goods .goods-images {
|
||||
width:60px;
|
||||
height:60px;
|
||||
float:left;
|
||||
margin-right:5px;
|
||||
}
|
||||
.goods-list.am-table dl img {
|
||||
.goods {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
.dl-content img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/**
|
||||
* 列表
|
||||
* 商品列表
|
||||
*/
|
||||
.am-table .goods-images { width: 60px; height: 60px; float: left; margin-right: 5px; }
|
||||
.am-table .goods-item,
|
||||
.am-table .goods-item .base,
|
||||
.am-table .goods-item .other { overflow: hidden; }
|
||||
.goods-images { width: 60px; height: 60px; float: left; margin-right: 5px; }
|
||||
.goods-item,
|
||||
.goods-item .base,
|
||||
.goods-item .other { overflow: hidden; }
|
||||
|
||||
/**
|
||||
* 业务弹窗
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
/**
|
||||
* 用户信息
|
||||
*/
|
||||
.content-right .user-info img {
|
||||
max-width: 35px;
|
||||
max-height: 35px;
|
||||
margin: 0 5px 2px 0;
|
||||
.user-info img {
|
||||
max-width: 35px;
|
||||
max-height: 35px;
|
||||
margin: 0 5px 2px 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
/**
|
||||
* 商品列表
|
||||
*/
|
||||
.content-right .goods-detail img { width: 60px; height: 60px; position: absolute; left: 0; }
|
||||
.content-right .goods-detail { position: relative; min-height: 65px; overflow: hidden; }
|
||||
.content-right .goods-title { max-height: 36px; height: auto; }
|
||||
.content-right .goods-base {float: left; top: 0; margin-left: 65px; }
|
||||
.content-right .goods-spec li { color: #888; line-height: 16px; }
|
||||
.content-right .original-price { color: #9c9c9c; text-decoration: line-through; }
|
||||
.goods-detail img { width: 60px; height: 60px; position: absolute; left: 0; }
|
||||
.goods-detail { position: relative; min-height: 65px; overflow: hidden; }
|
||||
.goods-title { max-height: 36px; height: auto; }
|
||||
.goods-base {float: left; top: 0; margin-left: 65px; }
|
||||
.goods-spec li { color: #888; line-height: 16px; }
|
||||
.original-price { color: #9c9c9c; text-decoration: line-through; }
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
*/
|
||||
.content-right .user-info img {
|
||||
.user-info img {
|
||||
max-width: 35px;
|
||||
max-height: 35px;
|
||||
margin: 0 5px 2px 0;
|
||||
|
|
@ -21,18 +21,18 @@
|
|||
* 列表
|
||||
*/
|
||||
@media only screen and (min-width:640px) {
|
||||
.content-right table.am-table tr .row-goods { width: 25%; }
|
||||
.content-right table.am-table tr .row-user-info { width: 15%; }
|
||||
.content-right table.am-table tr .row-apply { width: 25%; }
|
||||
.content-right table.am-table tr .row-more { width: 80px; }
|
||||
.content-right table.am-table tr .row-operation { width: 85px; }
|
||||
table.am-table tr .row-goods { width: 25%; }
|
||||
table.am-table tr .row-user-info { width: 15%; }
|
||||
table.am-table tr .row-apply { width: 25%; }
|
||||
table.am-table tr .row-more { width: 80px; }
|
||||
table.am-table tr .row-operation { width: 85px; }
|
||||
}
|
||||
@media only screen and (max-width:640px) {
|
||||
.content-right table.am-table tr .row-apply { width: 50%; }
|
||||
.content-right table.am-table tr .row-operation, .content-right table.am-table tr .row-more { width: 75px; }
|
||||
table.am-table tr .row-apply { width: 50%; }
|
||||
table.am-table tr .row-operation, table.am-table tr .row-more { width: 75px; }
|
||||
}
|
||||
|
||||
.content-right table.am-table .am-slider {
|
||||
table.am-table .am-slider {
|
||||
width: 100px;
|
||||
max-height: 108px;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -1586,11 +1586,18 @@ function TableContainerInit()
|
|||
$(this).find('>th:last').css('right', right);
|
||||
|
||||
// 最后一列自定义宽度->默认宽度,设置倒数第二列 padding-right
|
||||
var last_width = $(this).find('>th').last().data('width') || $(this).find('>th').last().innerWidth();
|
||||
var last_width = parseInt($(this).find('>th').last().attr('data-width') || $(this).find('>th').last().innerWidth());
|
||||
if(last_width > 0)
|
||||
{
|
||||
$(this).find('>th').eq(-2).css('min-width', (($(this).find('>th').eq(-2).data('width') || 0)+last_width)+'px');
|
||||
// 倒数第二个元素的宽度、默认读取属性宽度
|
||||
var last_width2 = parseInt($(this).find('>th').eq(-2).attr('data-width') || $(this).find('>th').eq(-2).innerWidth());
|
||||
// 设置宽度、倒数第二个元素的宽度+最后一个元素的宽度
|
||||
$(this).find('>th').eq(-2).css('min-width', last_width2+last_width+'px');
|
||||
// 设置宽度、最后一个元素的宽度+10
|
||||
$(this).find('>th').eq(-2).css('padding-right', (last_width+10)+'px');
|
||||
// 设置属性数据
|
||||
$(this).find('>th').eq(-2).attr('data-width', last_width2);
|
||||
$(this).find('>th').last().attr('data-width', last_width);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1649,9 +1656,10 @@ function TableContainerInit()
|
|||
$(this).find('>td:last').css('right', right);
|
||||
|
||||
// 最后一列自定义宽度->默认宽度,设置倒数第二列 padding-right
|
||||
var last_width = $(this).find('>td').last().data('width') || $(this).find('>td').last().innerWidth();
|
||||
var last_width = parseInt($(this).find('>td').last().attr('data-width') || $(this).find('>td').last().innerWidth());
|
||||
if(last_width > 0)
|
||||
{
|
||||
// 设置宽度、最后一个元素的宽度+10
|
||||
$(this).find('>td').eq(-2).css('padding-right', (last_width+10)+'px');
|
||||
}
|
||||
}
|
||||
|
|
@ -1695,6 +1703,16 @@ $(function()
|
|||
// 表格初始化
|
||||
TableContainerInit();
|
||||
|
||||
/**
|
||||
* 页面加载 loading
|
||||
*/
|
||||
if($('.am-page-loading').length > 0)
|
||||
{
|
||||
setTimeout(function() {
|
||||
$('.am-page-loading').fadeOut(500);
|
||||
}, 300);
|
||||
}
|
||||
|
||||
// 全屏操作
|
||||
$('.fullscreen-event').on('click', function()
|
||||
{
|
||||
|
|
@ -2362,14 +2380,16 @@ $(function()
|
|||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 页面加载 loading
|
||||
*/
|
||||
if($('.am-page-loading').length > 0)
|
||||
{
|
||||
setTimeout(function() {
|
||||
$('.am-page-loading').fadeOut(500);
|
||||
}, 300);
|
||||
}
|
||||
// 加载 loading popup 弹层
|
||||
$(document).on('click', '.submit-popup', function()
|
||||
{
|
||||
var url = $(this).data('url') || null;
|
||||
if(url == null)
|
||||
{
|
||||
Prompt('url未配置');
|
||||
return false;
|
||||
}
|
||||
ModalLoad(url);
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Reference in New Issue