用户端数据列表优化

feat/task1-c-wallet
devil 2020-06-30 23:32:16 +08:00
parent f3702ee13e
commit dd67de65b1
15 changed files with 449 additions and 339 deletions

View File

@ -143,6 +143,7 @@ class Orderaftersale
'label' => '退款说明',
'view_type' => 'field',
'view_key' => 'msg',
'grid_size' => 'sm',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',

View File

@ -1,14 +0,0 @@
<!-- 用户信息 -->
{{if !empty($module_data)}}
{{if !empty($module_data['user'])}}
<img src="{{$module_data.user.avatar}}" alt="{{$module_data.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-margin-bottom-0" width="35" height="35" />
<ul class="user-base">
<li>名称:{{if empty($module_data['user']['username'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$module_data.user.username}}{{/if}}</li>
<li>昵称:{{if empty($module_data['user']['nickname'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$module_data.user.nickname}}{{/if}}</li>
<li>手机:{{if empty($module_data['user']['mobile'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$module_data.user.mobile}}{{/if}}</li>
<li>邮箱:{{if empty($module_data['user']['email'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$module_data.user.email}}{{/if}}</li>
</ul>
{{else /}}
用户信息异常
{{/if}}
{{/if}}

View File

@ -39,7 +39,7 @@ class Orderaftersale extends Common
}
/**
* 订单列表
* 列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
@ -48,67 +48,51 @@ class Orderaftersale extends Common
*/
public function Index()
{
// 参数
$params = input();
$params['user'] = $this->user;
$params['user_type'] = 'user';
// 总数
$total = OrderAftersaleService::OrderAftersaleTotal($this->form_where);
// 分页
$number = 10;
// 条件
$where = OrderAftersaleService::OrderAftersaleListWhere($params);
// 获取总数
$total = OrderAftersaleService::OrderAftersaleTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => MyUrl('index/orderaftersale/index'),
);
$page_params = [
'number' => $this->page_size,
'total' => $total,
'where' => $this->data_request,
'page' => $this->page,
'url' => MyUrl('index/orderaftersale/index'),
];
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = OrderAftersaleService::OrderAftersaleList($data_params);
$this->assign('data_list', $data['data']);
// 静态数据
$this->assign('common_order_aftersale_type_list', lang('common_order_aftersale_type_list'));
$this->assign('common_order_aftersale_status_list', lang('common_order_aftersale_status_list'));
$this->assign('common_order_aftersale_refundment_list', lang('common_order_aftersale_refundment_list'));
// 获取数据列表
$data_params = [
'where' => $this->form_where,
'm' => $page->GetPageStarNumber(),
'n' => $this->page_size,
'is_public' => 0,
];
$ret = OrderAftersaleService::OrderAftersaleList($data_params);
// 浏览器名称
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('订单售后', 1));
// 参数
$this->assign('params', $params);
// 基础参数赋值
$this->assign('params', $this->data_request);
$this->assign('page_html', $page->GetPageHtml());
$this->assign('data_list', $ret['data']);
return $this->fetch();
}
/**
* 售后页面
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-05-21
* @desc description
*/
public function Aftersale()
public function Detail()
{
// 参数
$params = input();
$order_id = isset($params['oid']) ? intval($params['oid']) : 0;
$order_detail_id = isset($params['did']) ? intval($params['did']) : 0;
$order_id = isset($this->data_request['oid']) ? intval($this->data_request['oid']) : 0;
$order_detail_id = isset($this->data_request['did']) ? intval($this->data_request['did']) : 0;
$ret = OrderAftersaleService::OrdferGoodsRow($order_id, $order_detail_id, $this->user['id']);
if($ret['code'] == 0)
{
@ -155,7 +139,8 @@ class Orderaftersale extends Common
// 编辑器文件存放地址
$this->assign('editor_path_type', 'order_aftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id);
$this->assign('params', $params);
$this->assign('aftersale_search_keywords_name', 'fp0');
$this->assign('params', $this->data_request);
return $this->fetch();
} else {
$this->assign('msg', $ret['msg']);
@ -180,7 +165,7 @@ class Orderaftersale extends Common
return $this->fetch('public/tips_error');
}
$params = input();
$params = $this->data_request;
$params['user'] = $this->user;
return OrderAftersaleService::AftersaleCreate($params);
}
@ -202,7 +187,7 @@ class Orderaftersale extends Common
return $this->fetch('public/tips_error');
}
$params = input();
$params = $this->data_request;
$params['user'] = $this->user;
return OrderAftersaleService::AftersaleDelivery($params);
}
@ -224,7 +209,7 @@ class Orderaftersale extends Common
return $this->fetch('public/tips_error');
}
$params = input('post.');
$params = $this->data_post;
$params['user'] = $this->user;
return OrderAftersaleService::AftersaleCancel($params);
}

View File

@ -0,0 +1,276 @@
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\index\form;
use think\Db;
/**
* 用户订单售后动态表格
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-30
* @desc description
*/
class Orderaftersale
{
// 基础条件
public $condition_base = [];
/**
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
* @param [array] $params [输入参数]
*/
public function __construct($params = [])
{
// 用户信息
if(!empty($params['system_user']))
{
$this->condition_base[] = ['user_id', '=', $params['system_user']['id']];
}
}
/**
* 入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-30
* @desc description
* @param [array] $params [输入参数]
*/
public function Run($params = [])
{
return [
// 基础配置
'base' => [
'key_field' => 'id',
'is_search' => 1,
'search_url' => MyUrl('admin/orderaftersale/index'),
],
// 表单配置
'form' => [
[
'label' => '订单号',
'view_type' => 'field',
'view_key' => 'order_no',
'width' => 170,
'search_config' => [
'form_type' => 'input',
'where_type' => '=',
],
],
[
'label' => '基础信息',
'view_type' => 'module',
'view_key' => 'orderaftersale/module/info',
'grid_size' => 'lg',
'search_config' => [
'form_type' => 'input',
'form_name' => 'id',
'where_type' => 'like',
'where_type_custom' => 'in',
'where_handle_custom' => 'WhereValueBaseInfo',
'placeholder' => '请输入商品名称/型号',
],
],
[
'label' => '状态',
'view_type' => 'field',
'view_key' => 'status_text',
'width' => 120,
'search_config' => [
'form_type' => 'select',
'form_name' => 'status',
'where_type' => 'in',
'data' => lang('common_order_aftersale_status_list'),
'data_key' => 'value',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '申请类型',
'view_type' => 'field',
'view_key' => 'type_text',
'width' => 120,
'search_config' => [
'form_type' => 'select',
'form_name' => 'type',
'where_type' => 'in',
'data' => lang('common_order_aftersale_type_list'),
'data_key' => 'value',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '原因',
'view_type' => 'field',
'view_key' => 'reason',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '退款金额(元)',
'view_type' => 'field',
'view_key' => 'price',
'search_config' => [
'form_type' => 'section',
'is_point' => 1,
],
],
[
'label' => '退货数量',
'view_type' => 'field',
'view_key' => 'number',
'search_config' => [
'form_type' => 'section',
],
],
[
'label' => '退款说明',
'view_type' => 'field',
'view_key' => 'msg',
'grid_size' => 'sm',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '退款类型',
'view_type' => 'field',
'view_key' => 'refundment_text',
'width' => 120,
'search_config' => [
'form_type' => 'select',
'form_name' => 'refundment',
'where_type' => 'in',
'data' => lang('common_order_aftersale_refundment_list'),
'data_key' => 'value',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '快递公司',
'view_type' => 'field',
'view_key' => 'express_name',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '快递单号',
'view_type' => 'field',
'view_key' => 'express_number',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '申请时间',
'view_type' => 'field',
'view_key' => 'apply_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'apply_time',
],
],
[
'label' => '确认时间',
'view_type' => 'field',
'view_key' => 'confirm_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'confirm_time',
],
],
[
'label' => '退货时间',
'view_type' => 'field',
'view_key' => 'delivery_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'delivery_time',
],
],
[
'label' => '审核时间',
'view_type' => 'field',
'view_key' => 'audit_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'audit_time',
],
],
[
'label' => '创建时间',
'view_type' => 'field',
'view_key' => 'add_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'add_time',
],
],
[
'label' => '更新时间',
'view_type' => 'field',
'view_key' => 'upd_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'upd_time',
],
],
[
'label' => '操作',
'view_type' => 'operate',
'view_key' => 'orderaftersale/module/operate',
'align' => 'center',
'fixed' => 'right',
],
],
];
}
/**
* 基础信息条件处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-30
* @desc description
* @param [string] $value [条件值]
* @param [array] $params [输入参数]
*/
public function WhereValueBaseInfo($value, $params = [])
{
if(!empty($value))
{
// 获取订单详情搜索的订单售后 id
$ids = Db::name('OrderAftersale')->alias('oa')->join(['__ORDER_DETAIL__'=>'od'], 'oa.order_detail_id=od.id')->where('title|model', 'like', '%'.$value.'%')->column('oa.id');
// 避免空条件造成无效的错觉
return empty($ids) ? [0] : $ids;
}
return $value;
}
}
?>

View File

@ -192,7 +192,7 @@
{{/if}}
</td>
<td class="row-number">
<a href="{{:MyUrl('index/orderaftersale/aftersale', ['oid'=>$order['id'], 'did'=>$goods['id']])}}" target="_blank">
<a href="{{:MyUrl('index/orderaftersale/detail', ['oid'=>$order['id'], 'did'=>$goods['id']])}}" target="_blank">
{{if !empty($goods['orderaftersale_btn_text'])}}
{{if empty($goods['orderaftersale'])}}
{{$goods.orderaftersale_btn_text}}

View File

@ -36,14 +36,14 @@
<tbody>
<tr>
<td>
<div class="goods-detail">
<div class="am-nbfc">
<a href="{{$goods.goods_url}}" target="_blank">
<img src="{{$goods.images}}">
<img src="{{$goods.images}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="60" height="60">
</a>
<div class="goods-base">
<div class="am-nbfc">
<a href="{{$goods.goods_url}}" target="_blank" class="goods-title">{{$goods.title}}</a>
{{if !empty($goods.spec)}}
<ul class="goods-attr">
<ul class="goods-spec am-margin-top-xs">
{{foreach $goods.spec as $spec}}
<li>{{$spec.type}}{{$spec.value}}</li>
{{/foreach}}
@ -112,7 +112,7 @@
<!-- 拒绝/关闭 -->
{{if isset($new_aftersale_data['status']) and $new_aftersale_data['status'] eq 5}}
<div class="am-alert am-alert-warning">
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', ['keywords'=>$new_aftersale_data['order_no']])}}">详情查看</a>
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', [$aftersale_search_keywords_name=>$new_aftersale_data['order_no']])}}">查看售后订单</a>
</div>
{{/if}}
@ -149,8 +149,8 @@
{{case 0|1|2}}
{{if $new_aftersale_data['status'] eq 1 and $new_aftersale_data['type'] eq 1}}
<div class="am-alert">
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', ['keywords'=>$new_aftersale_data['order_no']])}}">详情查看</a>
<button type="button" class="am-btn am-btn-primary am-radius am-margin-left-sm orderaftersale-delivery-submit" data-am-modal="{target: '#popup-orderaftersale-delivery'}" data-is-auto-delivery="{{if isset($params['is_auto_delivery'])}}{{$params.is_auto_delivery}}{{else /}}0{{/if}}">立即退货</button>
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', [$aftersale_search_keywords_name=>$new_aftersale_data['order_no']])}}">查看售后订单</a>
<button type="button" class="am-btn am-btn-primary am-radius am-margin-left-sm orderaftersale-delivery-submit" data-am-modal="{target: '#popup-orderaftersale-delivery'}" data-is-auto-delivery="{{if isset($params['isautodelivery'])}}{{$params.isautodelivery}}{{else /}}0{{/if}}">立即退货</button>
</div>
<div class="am-alert am-alert-warning">
<span>退货地址:</span>
@ -159,14 +159,14 @@
{{include file="orderaftersale/delivery" /}}
{{else /}}
<div class="am-alert">
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', ['keywords'=>$new_aftersale_data['order_no']])}}">详情查看</a>
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', [$aftersale_search_keywords_name=>$new_aftersale_data['order_no']])}}">查看售后订单</a>
</div>
{{/if}}
{{/case}}
{{case 3|4}}
<div class="am-alert {{if $new_aftersale_data['status'] eq 3}} am-alert-success{{else /}} am-alert-danger{{/if}}">
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', ['keywords'=>$new_aftersale_data['order_no']])}}">详情查看</a>
{{$new_aftersale_data.tips_msg}}<a href="{{:MyUrl('index/orderaftersale/index', [$aftersale_search_keywords_name=>$new_aftersale_data['order_no']])}}">查看售后订单</a>
</div>
{{/case}}
{{/switch}}

View File

@ -1,199 +1,2 @@
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div class="user-content">
<div class="user-content-body">
<!-- form start -->
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('index/orderaftersale/index')}}" request-type="form">
<div class="thin">
<div class="am-input-group am-input-group-sm am-fl so">
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="订单号" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
<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 more-submit">
更多筛选条件
{{if isset($params['is_more']) and $params['is_more'] eq 1}}
<input type="checkbox" name="is_more" value="1" id="is_more" checked />
<i class="am-icon-angle-up"></i>
{{else /}}
<input type="checkbox" name="is_more" value="1" id="is_more" />
<i class="am-icon-angle-down"></i>
{{/if}}
</label>
</div>
<table class="so-list more-where {{if !isset($params['is_more'])}}none{{/if}}">
<tbody>
<tr>
<td>
<span>类型:</span>
<select name="type" class="chosen-select" data-placeholder="类型...">
<option value="-1">类型...</option>
{{if !empty($common_order_aftersale_type_list)}}
{{foreach $common_order_aftersale_type_list as $v}}
<option value="{{$v.value}}" {{if isset($params['type']) and $params['type'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
<td>
<span>状态:</span>
<select name="status" class="chosen-select" data-placeholder="状态...">
<option value="-1">状态...</option>
{{if !empty($common_order_aftersale_status_list)}}
{{foreach $common_order_aftersale_status_list as $v}}
<option value="{{$v.value}}" {{if isset($params['status']) and $params['status'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
</tr>
<tr>
<td>
<span>退款:</span>
<select name="refundment" class="chosen-select" data-placeholder="退款...">
<option value="-1">退款...</option>
{{if !empty($common_order_aftersale_refundment_list)}}
{{foreach $common_order_aftersale_refundment_list as $v}}
<option value="{{$v.value}}" {{if isset($params['refundment']) and $params['refundment'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
<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="{{:MyUrl('index/orderaftersale/index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
</td>
</tr>
</tbody>
</table>
</form>
<!-- form end -->
<!-- 列表 -->
<div class="data-list am-margin-top-sm">
<table class="am-table am-table-striped">
<thead>
<tr>
<th class="row-goods am-hide-sm-only">商品信息</th>
<th class="row-apply">申请信息</th>
<th class="am-hide-sm-only">凭证</th>
<th>状态</th>
<th class="am-hide-sm-only">快递信息</th>
<th class="row-operation">操作</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr>
<td class="am-hide-sm-only">
<div class="goods-detail">
<a href="{{$v.order_data.items.goods_url}}" target="_blank">
<img src="{{$v.order_data.items.images}}" alt="{{$v.order_data.items.title}}" class="am-img-thumbnail am-radius" />
</a>
<div class="goods-base">
<a href="{{$v.order_data.items.goods_url}}" target="_blank" class="goods-title">{{$v.order_data.items.title}}</a>
{{if !empty($v.order_data.items.spec)}}
<ul class="goods-attr">
{{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>
</td>
<td>
类型:{{$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}}
</td>
<td class="am-hide-sm-only">
{{if !empty($v['images'])}}
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{&quot;directionNav&quot;:false, slideshow:false}' >
<ul class="am-slides">
{{foreach $v.images as $img}}
<li>
<img src="{{$img}}" />
</li>
{{/foreach}}
</ul>
</div>
{{/if}}
</td>
<td>
<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}}
{{if $v['status'] eq 4 and !empty($v['refuse_reason'])}}
<span class="am-text-danger">{{$v.refuse_reason}}</span>
{{/if}}
</td>
<td class="am-hide-sm-only">
{{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}}
</td>
<td>
{{if $v['status'] eq 1 and $v['type'] eq 1}}
<a href="{{:MyUrl('index/orderaftersale/aftersale', ['oid'=>$v['order_id'], 'did'=>$v['order_detail_id'], 'is_auto_delivery'=>1])}}" target="_blank" class="am-btn am-btn-primary am-btn-xs am-radius am-icon-send am-btn-block"> 退货</a>
{{/if}}
{{if !in_array($v['status'], [3,5])}}
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-icon-paint-brush am-btn-block submit-ajax submit-cancel" data-url="{{:MyUrl('index/orderaftersale/cancel')}}" data-id="{{$v.id}}" data-view="reload"> 取消</button>
{{/if}}
<a href="{{:MyUrl('index/orderaftersale/aftersale', ['oid'=>$v['order_id'], 'did'=>$v['order_detail_id']])}}" target="_blank" class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes am-btn-block"> 详情</a>
</td>
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
{{if empty($data_list)}}
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
{{/if}}
</div>
<!-- 分页 -->
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
</div>
</div>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
<!-- 继承公共的 form -->
{{extend name="public/module/user_form" /}}

View File

@ -0,0 +1,24 @@
<!-- 订单基础信息 -->
{{if !empty($module_data) and !empty($module_data['order_data'])}}
<div class="am-nbfc">
<a href="{{$module_data.order_data.items.goods_url}}" target="_blank">
<img src="{{$module_data.order_data.items.images}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="60" height="60" />
</a>
<div class="am-nbfc">
<a href="{{$module_data.order_data.items.goods_url}}" target="_blank" class="am-nowrap-initial">{{$module_data.order_data.items.title}}</a>
{{if !empty($module_data.order_data.items.spec)}}
<ul class="goods-spec am-margin-top-xs">
{{foreach $module_data.order_data.items.spec as $spec}}
<li>{{$spec.type}}{{$spec.value}}</li>
{{/foreach}}
</ul>
{{/if}}
</div>
</div>
<div class="am-text-right">
{{if $module_data.order_data.items.original_price gt 0}}
<span class="original-price am-margin-right-xs">{{$price_symbol}}{{$module_data.order_data.items.original_price}}</span>
{{/if}}
<strong>{{$price_symbol}}{{$module_data.order_data.items.price}} x {{$module_data.order_data.items.buy_number}}</strong>
</div>
{{/if}}

View File

@ -0,0 +1,18 @@
<!-- 操作栏 -->
<a href="{{:MyUrl('admin/orderaftersale/detail', ['oid'=>$module_data['order_id'], 'did'=>$module_data['order_detail_id']])}}" target="_blank" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block">
<i class="am-icon-eye"></i>
<span>详情</span>
</a>
{{if $module_data['status'] eq 1 and $module_data['type'] eq 1}}
<a href="{{:MyUrl('index/orderaftersale/detail', ['oid'=>$module_data['order_id'], 'did'=>$module_data['order_detail_id'], 'isautodelivery'=>1])}}" target="_blank" class="am-btn am-btn-primary am-btn-xs am-radius am-btn-block">
<i class="am-icon-send"></i>
<span>退货</span>
</a>
{{/if}}
{{if !in_array($module_data['status'], [3,5])}}
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-btn-block submit-ajax submit-cancel" data-url="{{:MyUrl('index/orderaftersale/cancel')}}" data-id="{{$module_data.id}}" data-view="reload">
<i class="am-icon-paint-brush"></i>
<span>取消</span>
</button>
{{/if}}

View File

@ -0,0 +1,21 @@
<!-- 凭证 -->
{{if !empty($module_data) and !empty($module_data['images'])}}
<div data-am-widget="slider" class="am-slider am-slider-default" data-am-slider='{"controlNav":false}'>
<ul class="am-slides">
{{foreach $module_data.images as $ik=>$iv}}
<li>
<a href="{{$iv}}" target="_blank">
<img src="{{$iv}}" />
</a>
<div class="am-slider-desc">
<div class="am-slider-counter">
<strong class="am-text-lg">{{$ik+1}}</strong>
<span class="am-margin-right-sm">/{{:count($module_data['images'])}}</span>
<span>{{$iv}}</span>
</div>
</div>
</li>
{{/foreach}}
</ul>
</div>
{{/if}}

View File

@ -3,7 +3,7 @@
{{if !empty($step_data['step0'])}}
{{foreach $step_data.step0 as $step}}
<li class="am-text-truncate {{if $step.is_active eq 1}} selected{{/if}} {{if $step.is_end eq 1}} selected-end{{/if}}">
<span class="number">{{$step.number}}</span>
<span class="number am-badge am-round">{{$step.number}}</span>
<span class="text">{{$step.name}}</span>
{{if $step.is_caret eq 1}}
<i class="am-icon-caret-right"></i>
@ -21,7 +21,7 @@
{{if !empty($step_data['step1'])}}
{{foreach $step_data.step1 as $step}}
<li class="am-text-truncate {{if $step.is_active eq 1}} selected{{/if}} {{if $step.is_end eq 1}} selected-end{{/if}}">
<span class="number">{{$step.number}}</span>
<span class="number am-badge am-round">{{$step.number}}</span>
<span class="text">{{$step.name}}</span>
{{if $step.is_caret eq 1}}
<i class="am-icon-caret-right"></i>

View File

@ -828,7 +828,7 @@ class NavigationService
'name' => '订单售后',
'url' => MyUrl('index/orderaftersale/index'),
'is_show' => 1,
'contains' => ['indexorderaftersaleindex', 'indexorderaftersaleaftersale'],
'contains' => ['indexorderaftersaleindex', 'indexorderaftersaledetail'],
'icon' => 'am-icon-puzzle-piece',
'is_system' => 1,
],

File diff suppressed because one or more lines are too long

View File

@ -1,42 +1,3 @@
/**
*
*/
.goods-detail img { width: 80px; height: 80px; position: absolute; border: 1px solid #eee; left: 0; top: 0; }
.goods-detail { position: relative; min-height: 80px; }
.goods-title { display: block; max-height: 36px; overflow: hidden; text-overflow: ellipsis; }
.goods-title:hover { text-decoration: underline; }
.goods-base {float: left; top: 0; margin-left: 85px; }
.goods-attr { margin-top: 5px; }
.goods-attr li { color: #888; line-height: 16px; }
.original-price, .line-price { font-family: Verdana,Tahoma,arial; }
.original-price { color: #9c9c9c; text-decoration: line-through; }
.line-price { color: #3c3c3c; font-weight: 700; }
.am-table { margin-bottom: 10px; }
.am-table > tbody > tr > td { border-top: 1px solid #F5F5F5; }
.am-table > thead > tr > th { border-bottom: 1px solid #f7f7f7; }
@media only screen and (min-width:640px) {
.user-content-body table tr .row-base { width: 60%; }
.user-content-body table tr .row-price { width: 40%; }
}
@media only screen and (max-width:640px) {
.user-content-body table tr .row-base { width: 60%; }
.user-content-body table tr .row-price { width: 40%; }
}
/**
*
*/
.user-content-body .order-base-panel {
-webkit-box-shadow: none;
box-shadow: none;
}
.user-content-body .order-base-panel .am-panel-bd {
padding-top: 5px;
}
.user-content-body .order-base-panel .am-alert-secondary {
margin-bottom: 0;
}
/**
*
*/
@ -111,8 +72,6 @@
background: #e1e1e1;
}
.aftersale-step li .number {
padding: 2px 6px;
border-radius: 50px;
font-weight: 700;
background: #fff;
color: #b4b4b4;