mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2024-11-30 02:49:03 +08:00
订单售后列表优化
This commit is contained in:
parent
42a00f24f9
commit
4975d1e68f
@ -52,47 +52,35 @@ class Orderaftersale extends Common
|
|||||||
*/
|
*/
|
||||||
public function Index()
|
public function Index()
|
||||||
{
|
{
|
||||||
// 参数
|
// 总数
|
||||||
$params = input();
|
$total = OrderAftersaleService::OrderAftersaleTotal($this->form_where);
|
||||||
$params['user_type'] = 'admin';
|
|
||||||
|
|
||||||
// 分页
|
|
||||||
$number = MyC('admin_page_number', 10, true);
|
|
||||||
|
|
||||||
// 条件
|
|
||||||
$where = OrderAftersaleService::OrderAftersaleListWhere($params);
|
|
||||||
|
|
||||||
// 获取总数
|
|
||||||
$total = OrderAftersaleService::OrderAftersaleTotal($where);
|
|
||||||
|
|
||||||
// 分页
|
// 分页
|
||||||
$page_params = array(
|
$page_params = array(
|
||||||
'number' => $number,
|
'number' => $this->page_size,
|
||||||
'total' => $total,
|
'total' => $total,
|
||||||
'where' => $params,
|
'where' => $this->data_request,
|
||||||
'page' => isset($params['page']) ? intval($params['page']) : 1,
|
'page' => $this->page,
|
||||||
'url' => MyUrl('admin/orderaftersale/index'),
|
'url' => MyUrl('admin/orderaftersale/index'),
|
||||||
);
|
);
|
||||||
$page = new \base\Page($page_params);
|
$page = new \base\Page($page_params);
|
||||||
$this->assign('page_html', $page->GetPageHtml());
|
|
||||||
|
|
||||||
// 获取列表
|
// 获取数据列表
|
||||||
$data_params = array(
|
$data_params = [
|
||||||
'm' => $page->GetPageStarNumber(),
|
'where' => $this->form_where,
|
||||||
'n' => $number,
|
'm' => $page->GetPageStarNumber(),
|
||||||
'where' => $where,
|
'n' => $this->page_size,
|
||||||
'is_public' => 0,
|
'is_public' => 0,
|
||||||
);
|
];
|
||||||
$data = OrderAftersaleService::OrderAftersaleList($data_params);
|
$ret = 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'));
|
$this->assign('common_order_aftersale_refundment_list', lang('common_order_aftersale_refundment_list'));
|
||||||
|
|
||||||
// 参数
|
// 参数
|
||||||
$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();
|
return $this->fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,26 +93,24 @@ class Orderaftersale extends Common
|
|||||||
*/
|
*/
|
||||||
public function Detail()
|
public function Detail()
|
||||||
{
|
{
|
||||||
// 参数
|
if(!empty($this->data_request['id']))
|
||||||
$params = input();
|
{
|
||||||
$params['user_type'] = 'admin';
|
// 条件
|
||||||
|
$where = [
|
||||||
|
['id', '=', intval($this->data_request['id'])],
|
||||||
|
];
|
||||||
|
|
||||||
// 条件
|
// 获取列表
|
||||||
$where = OrderAftersaleService::OrderAftersaleListWhere($params);
|
$data_params = array(
|
||||||
|
'm' => 0,
|
||||||
// 获取列表
|
'n' => 1,
|
||||||
$data_params = array(
|
'where' => $where,
|
||||||
'm' => 0,
|
'is_public' => 0,
|
||||||
'n' => 1,
|
);
|
||||||
'where' => $where,
|
$ret = OrderAftersaleService::OrderAftersaleList($data_params);
|
||||||
'is_public' => 0,
|
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
|
||||||
);
|
$this->assign('data', $data);
|
||||||
$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();
|
return $this->fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,6 @@ class Order
|
|||||||
// 基础配置
|
// 基础配置
|
||||||
'base' => [
|
'base' => [
|
||||||
'key_field' => 'id',
|
'key_field' => 'id',
|
||||||
'status_field' => 'is_shelves',
|
|
||||||
'is_search' => 1,
|
'is_search' => 1,
|
||||||
'search_url' => MyUrl('admin/order/index'),
|
'search_url' => MyUrl('admin/order/index'),
|
||||||
],
|
],
|
||||||
|
301
application/admin/form/Orderaftersale.php
Normal file
301
application/admin/form/Orderaftersale.php
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
<?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\admin\form;
|
||||||
|
|
||||||
|
use think\Db;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单售后动态表格
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2020-06-08
|
||||||
|
* @desc description
|
||||||
|
*/
|
||||||
|
class Orderaftersale
|
||||||
|
{
|
||||||
|
// 基础条件
|
||||||
|
public $condition_base = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入口
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2020-06-08
|
||||||
|
* @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' => 'module',
|
||||||
|
'view_key' => 'orderaftersale/module/user',
|
||||||
|
'grid_size' => 'sm',
|
||||||
|
'search_config' => [
|
||||||
|
'form_type' => 'input',
|
||||||
|
'form_name' => 'user_id',
|
||||||
|
'where_type' => 'like',
|
||||||
|
'where_type_custom' => 'in',
|
||||||
|
'where_handle_custom' => 'WhereValueUserInfo',
|
||||||
|
'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',
|
||||||
|
'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' => 'module',
|
||||||
|
'view_key' => 'orderaftersale/module/voucher',
|
||||||
|
'width' => 140,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'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-08
|
||||||
|
* @desc description
|
||||||
|
* @param [string] $value [条件值]
|
||||||
|
* @param [array] $params [输入参数]
|
||||||
|
*/
|
||||||
|
public function WhereValueUserInfo($value, $params = [])
|
||||||
|
{
|
||||||
|
if(!empty($value))
|
||||||
|
{
|
||||||
|
// 获取用户 id
|
||||||
|
$ids = Db::name('User')->where('username|nickname|mobile|email', 'like', '%'.$value.'%')->column('id');
|
||||||
|
|
||||||
|
// 避免空条件造成无效的错觉
|
||||||
|
return empty($ids) ? [0] : $ids;
|
||||||
|
}
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基础信息条件处理
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2020-06-08
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -1,2 +1,110 @@
|
|||||||
<!-- 继承公共的 form -->
|
<!-- 继承公共的 form -->
|
||||||
{{extend name="public/module/form" /}}
|
{{extend name="public/module/form" /}}
|
||||||
|
|
||||||
|
<!-- 扩展 -->
|
||||||
|
{{block name="form_extend"}}
|
||||||
|
<!-- 取货弹窗 -->
|
||||||
|
<div class="am-modal am-modal-no-btn" tabindex="-1" id="order-take-modal">
|
||||||
|
<div class="am-modal-dialog">
|
||||||
|
<div class="am-modal-hd">
|
||||||
|
<a href="javascript: void(0)" class="am-close am-close-spin" data-am-modal-close>×</a>
|
||||||
|
</div>
|
||||||
|
<div class="am-modal-bd">
|
||||||
|
<form class="am-form form-validation-take take-form" method="post" action="{{:MyUrl('admin/order/delivery')}}" request-type="ajax-reload">
|
||||||
|
<div class="am-form-group am-form-group-refreshing am-margin-bottom-0">
|
||||||
|
<label>取货码</label>
|
||||||
|
<input type="text" autocomplete="off" name="extraction_code" placeholder="取货码" minlength="4" maxlength="4" data-validation-message="请填写4位数取货码" class="am-radius" required />
|
||||||
|
</div>
|
||||||
|
<div class="am-form-group am-form-group-refreshing">
|
||||||
|
<input type="hidden" name="id" value="0" />
|
||||||
|
<input type="hidden" name="user_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:'处理中...'}">确认</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 发货弹窗 -->
|
||||||
|
<div class="am-popup" id="order-delivery-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 form-validation-delivery delivery-form" method="post" action="{{:MyUrl('admin/order/delivery')}}" request-type="ajax-reload">
|
||||||
|
<div class="business-item">
|
||||||
|
{{if !empty($express_list)}}
|
||||||
|
<ul class="express-list" data-type="express">
|
||||||
|
{{foreach $express_list as $express}}
|
||||||
|
{{if $express.is_enable eq 1}}
|
||||||
|
<li class="express-items-{{$express.id}}" data-value="{{$express.id}}">
|
||||||
|
{{if !empty($express.icon)}}
|
||||||
|
<img src="{{$express.icon}}" />
|
||||||
|
{{/if}}
|
||||||
|
<span>{{$express.name}}</span>
|
||||||
|
<i class="icon-active"></i>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
{{if empty($express_list)}}
|
||||||
|
<div class="table-no"><i class="am-icon-warning"></i> 没有快递方式</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="am-margin-top-sm">
|
||||||
|
<label>快递单号</label>
|
||||||
|
<input type="text" autocomplete="off" name="express_number" placeholder="快递单号" minlength="1" data-validation-message="请填写快递单号" class="am-radius" required />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="am-margin-top-lg">
|
||||||
|
<input type="hidden" name="id" value="0" />
|
||||||
|
<input type="hidden" name="express_id" value="0" />
|
||||||
|
<input type="hidden" name="user_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:'处理中...'}">确认</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 支付弹窗 -->
|
||||||
|
<div class="am-popup" 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 form-validation-pay pay-form" action="{{:MyUrl('admin/order/pay')}}" method="POST" request-type="ajax-reload">
|
||||||
|
<div class="business-item">
|
||||||
|
{{if !empty($buy_payment_list)}}
|
||||||
|
<ul class="payment-list" data-type="payment">
|
||||||
|
{{foreach $buy_payment_list as $payment}}
|
||||||
|
<li class="payment-items-{{$payment.id}}" data-value="{{$payment.id}}">
|
||||||
|
{{if !empty($payment.logo)}}
|
||||||
|
<img src="{{$payment.logo}}" />
|
||||||
|
{{/if}}
|
||||||
|
<span>{{$payment.name}}</span>
|
||||||
|
<i class="icon-active"></i>
|
||||||
|
</li>
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
{{if empty($buy_payment_list)}}
|
||||||
|
<div class="table-no"><i class="am-icon-warning"></i> 没有支付方式</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="am-margin-top-sm">
|
||||||
|
<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:'处理中...'}">确认</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/block}}
|
@ -1,17 +1,18 @@
|
|||||||
{{include file="public/header" /}}
|
<!-- 继承公共的 detail -->
|
||||||
|
{{extend name="public/module/detail" /}}
|
||||||
|
|
||||||
<!-- content start -->
|
<!-- 详情内容 -->
|
||||||
<div class="am-padding-sm">
|
{{if !empty($data)}}
|
||||||
{{if !empty($data)}}
|
{{block name="detail_data"}}
|
||||||
<dl class="dl-content">
|
<dl class="dl-content">
|
||||||
<dt>商品信息</dt>
|
<dt>商品信息</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<div class="goods-detail">
|
<div class="am-nbfc">
|
||||||
<a href="{{$data.order_data.items.goods_url}}" target="_blank">
|
<a href="{{$data.order_data.items.goods_url}}" target="_blank">
|
||||||
<img src="{{$data.order_data.items.images}}" class="am-img-thumbnail am-radius" />
|
<img src="{{$data.order_data.items.images}}" class="am-img-thumbnail am-radius am-margin-right-xs am-fl" width="60" height="60" />
|
||||||
</a>
|
</a>
|
||||||
<div class="goods-base">
|
<div class="am-nbfc">
|
||||||
<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>
|
<a href="{{$data.order_data.items.goods_url}}" target="_blank" class="am-nowrap-initial">{{$data.order_data.items.title}}</a>
|
||||||
{{if !empty($data.order_data.items.spec)}}
|
{{if !empty($data.order_data.items.spec)}}
|
||||||
<ul class="goods-spec am-margin-top-xs">
|
<ul class="goods-spec am-margin-top-xs">
|
||||||
{{foreach $data.order_data.items.spec as $spec}}
|
{{foreach $data.order_data.items.spec as $spec}}
|
||||||
@ -21,16 +22,18 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{if $data.order_data.items.original_price gt 0}}
|
<div class="am-text-right">
|
||||||
<p class="original-price">{{$price_symbol}}{{$data.order_data.items.original_price}}</p>
|
{{if $data.order_data.items.original_price gt 0}}
|
||||||
{{/if}}
|
<span class="original-price am-margin-right-xs">{{$price_symbol}}{{$data.order_data.items.original_price}}</span>
|
||||||
<p class="line-price">{{$price_symbol}}{{$data.order_data.items.price}} x {{$data.order_data.items.buy_number}}</p>
|
{{/if}}
|
||||||
|
<strong>{{$price_symbol}}{{$data.order_data.items.price}} x {{$data.order_data.items.buy_number}}</strong>
|
||||||
|
</div>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>用户信息</dt>
|
<dt>用户信息</dt>
|
||||||
<dd class="user-info">
|
<dd class="user-info">
|
||||||
{{if !empty($data['user'])}}
|
{{if !empty($data['user'])}}
|
||||||
<img src="{{$data.user.avatar}}" alt="{{$data.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left" />
|
<img src="{{$data.user.avatar}}" alt="{{$data.user.user_name_view}}" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-margin-bottom-0 am-fl" width="35" height="35" />
|
||||||
<ul class="user-base">
|
<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']['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']['nickname'])}}<span class="cr-ccc">未填写</span>{{else /}}{{$data.user.nickname}}{{/if}}</li>
|
||||||
@ -97,18 +100,11 @@
|
|||||||
<dt>取消时间</dt>
|
<dt>取消时间</dt>
|
||||||
<dd>{{$data.cancel_time_time}}</dd>
|
<dd>{{$data.cancel_time_time}}</dd>
|
||||||
|
|
||||||
<dt>添加时间</dt>
|
<dt>创建时间</dt>
|
||||||
<dd>{{$data.add_time_time}}</dd>
|
<dd>{{$data.add_time_time}}</dd>
|
||||||
|
|
||||||
<dt>更新时间</dt>
|
<dt>更新时间</dt>
|
||||||
<dd>{{$data.upd_time_time}}</dd>
|
<dd>{{$data.upd_time_time}}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
{{else /}}
|
{{/block}}
|
||||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
{{/if}}
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
<!-- content end -->
|
|
||||||
|
|
||||||
<!-- footer start -->
|
|
||||||
{{include file="public/footer" /}}
|
|
||||||
<!-- footer end -->
|
|
@ -1,402 +1,103 @@
|
|||||||
{{include file="public/header" /}}
|
<!-- 继承公共的 form -->
|
||||||
|
{{extend name="public/module/form" /}}
|
||||||
|
|
||||||
<!-- right content start -->
|
<!-- 扩展 -->
|
||||||
<div class="content-right">
|
{{block name="form_extend"}}
|
||||||
<div class="content">
|
<!-- 审核弹窗 -->
|
||||||
<!-- form start -->
|
<div class="am-popup" id="order-audit-popup">
|
||||||
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('admin/orderaftersale/index')}}" request-type="form">
|
<div class="am-popup-inner">
|
||||||
<div class="thin">
|
<div class="am-popup-hd">
|
||||||
<div class="am-input-group am-input-group-sm am-fl so">
|
<h4 class="am-popup-title">审核操作</h4>
|
||||||
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="订单号/快递单号" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
|
<span data-am-modal-close class="am-close">×</span>
|
||||||
<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>
|
</div>
|
||||||
<table class="so-list more-where {{if !isset($params['is_more'])}}none{{/if}}">
|
<div class="am-popup-bd">
|
||||||
<tbody>
|
<dl class="dl-content">
|
||||||
<tr>
|
<dt>用户信息</dt>
|
||||||
<td>
|
<dd class="user-info">
|
||||||
<span>类型:</span>
|
<img src="{{$attachment_host}}/static/common/images/user-img-sm.gif" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-margin-bottom-0 am-fl" width="35" height="35" />
|
||||||
<select name="type" class="chosen-select" data-placeholder="类型...">
|
<ul class="user-base">
|
||||||
<option value="-1">类型...</option>
|
<li class="username">名称:<span>...</span></li>
|
||||||
{{if !empty($common_order_aftersale_type_list)}}
|
<li class="nickname">昵称:<span>...</span></li>
|
||||||
{{foreach $common_order_aftersale_type_list as $v}}
|
<li class="mobile">手机:<span>...</span></li>
|
||||||
<option value="{{$v.value}}" {{if isset($params['type']) and $params['type'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
<li class="email">邮箱:<span>...</span></li>
|
||||||
{{/foreach}}
|
</ul>
|
||||||
{{/if}}
|
</dd>
|
||||||
</select>
|
<dt>申请信息</dt>
|
||||||
</td>
|
<dd class="apply-info">
|
||||||
<td>
|
<ul>
|
||||||
<span>状态:</span>
|
<li class="type">类型:<span>...</span></li>
|
||||||
<select name="status" class="chosen-select" data-placeholder="状态...">
|
<li class="reason">原因:<span>...</span></li>
|
||||||
<option value="-1">状态...</option>
|
<li class="number">数量:<span>...</span></li>
|
||||||
{{if !empty($common_order_aftersale_status_list)}}
|
<li class="price">金额:<span class="am-text-warning">...</span></li>
|
||||||
{{foreach $common_order_aftersale_status_list as $v}}
|
<li class="msg">说明:<span>...</span></li>
|
||||||
<option value="{{$v.value}}" {{if isset($params['status']) and $params['status'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
</ul>
|
||||||
{{/foreach}}
|
</dd>
|
||||||
{{/if}}
|
</dl>
|
||||||
</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('admin/orderaftersale/index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
<!-- form end -->
|
|
||||||
|
|
||||||
<!-- top operation start -->
|
<form class="am-form form-validation-audit" action="{{:MyUrl('admin/orderaftersale/audit')}}" method="POST" request-type="ajax-reload">
|
||||||
<div class="am-g am-margin-top-sm">
|
<div class="am-form-group reply-submit am-form-group-refreshing">
|
||||||
<!-- 顶部操作钩子 -->
|
<label class="am-block">退款方式</label>
|
||||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
{{if !empty($common_order_aftersale_refundment_list)}}
|
||||||
<div class="plugins-tag">
|
{{foreach $common_order_aftersale_refundment_list as $v}}
|
||||||
<span>plugins_view_admin_order_aftersale_top_operate</span>
|
<label class="am-radio-inline am-success">
|
||||||
</div>
|
<input type="radio" name="refundment" value="{{$v.value}}" data-am-ucheck data-validation-message="请选择退款方式" required /> {{$v.name}}
|
||||||
{{/if}}
|
</label>
|
||||||
{{php}}
|
{{/foreach}}
|
||||||
$hook_name = 'plugins_view_admin_order_aftersale_top_operate';
|
{{/if}}
|
||||||
$hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>true]);
|
</div>
|
||||||
if(!empty($hook_data) && is_array($hook_data))
|
|
||||||
{
|
|
||||||
foreach($hook_data as $hook)
|
|
||||||
{
|
|
||||||
if(is_string($hook) || is_int($hook))
|
|
||||||
{
|
|
||||||
echo htmlspecialchars_decode($hook);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{{/php}}
|
|
||||||
</div>
|
|
||||||
<!-- top operation end -->
|
|
||||||
|
|
||||||
<!-- list start -->
|
<div class="am-form-group reply-submit am-form-group-refreshing">
|
||||||
<div class="am-scrollable-horizontal am-table-scrollable-horizontal am-margin-top-sm">
|
<input type="hidden" name="id" value="" />
|
||||||
<table class="am-table am-table-striped am-table-hover am-table-bordered am-text-nowrap am-table-td-fixed-last goods-list">
|
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button>
|
||||||
<thead>
|
</div>
|
||||||
<tr>
|
</form>
|
||||||
<th class="am-grid-lg">商品信息</th>
|
|
||||||
<th class="am-grid-sm">用户信息</th>
|
|
||||||
<th class="am-grid-sm">申请信息</th>
|
|
||||||
<th class="am-grid-sm">凭证</th>
|
|
||||||
<th>状态</th>
|
|
||||||
<th class="am-grid-sm">快递信息</th>
|
|
||||||
<th class="am-text-center">操作</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{{if !empty($data_list)}}
|
|
||||||
{{foreach $data_list as $v}}
|
|
||||||
<tr id="data-list-{{$v.id}}">
|
|
||||||
<td class="am-text-middle">
|
|
||||||
<div class="am-padding-bottom-xs">
|
|
||||||
<strong>{{$v.order_data.order_no}}</strong>
|
|
||||||
<span class="am-badge am-badge-primary am-radius" title="订单模式">{{$v.order_data.order_model_name}}</span>
|
|
||||||
<span class="am-badge am-badge-secondary am-radius" title="客户端类型">{{$v.order_data.client_type_name}}</span>
|
|
||||||
</div>
|
|
||||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-vertical-0" />
|
|
||||||
<div class="goods-detail am-padding-vertical-xs">
|
|
||||||
<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>
|
|
||||||
<div class="goods-price">
|
|
||||||
{{if $v.order_data.items.original_price gt 0}}
|
|
||||||
<span class="original-price am-margin-right-xs">{{$price_symbol}}{{$v.order_data.items.original_price}}</span>
|
|
||||||
{{/if}}
|
|
||||||
<strong>{{$price_symbol}}{{$v.order_data.items.price}} x {{$v.order_data.items.buy_number}}</strong>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="am-text-middle 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}}
|
|
||||||
</td>
|
|
||||||
<td class="am-text-middle">
|
|
||||||
类型:{{$v.type_text}}<br />
|
|
||||||
原因:{{$v.reason}}<br />
|
|
||||||
数量:{{$v.number}}<br />
|
|
||||||
金额:<strong class="am-text-danger">{{$price_symbol}}{{$v.price}}</strong><br />
|
|
||||||
说明:{{$v.msg}}<br />
|
|
||||||
时间:{{$v.apply_time_time}}
|
|
||||||
</td>
|
|
||||||
<td class="am-text-middle">
|
|
||||||
{{if !empty($v['images'])}}
|
|
||||||
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, slideshow:false}' >
|
|
||||||
<ul class="am-slides">
|
|
||||||
{{foreach $v.images as $img}}
|
|
||||||
<li>
|
|
||||||
<a href="{{$img}}" target="_blank">
|
|
||||||
<img src="{{$img}}" />
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{/foreach}}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</td>
|
|
||||||
<td class="am-text-middle">
|
|
||||||
<p>{{$v.status_text}}</p>
|
|
||||||
{{if $v['status'] eq 3 and !empty($v['refundment_text'])}}
|
|
||||||
<span class="am-badge am-badge-success am-radius 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-text-middle">
|
|
||||||
{{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 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/orderaftersale/detail', ['id'=>$v['id']])}}">
|
|
||||||
<i class="am-icon-eye"></i>
|
|
||||||
<span>详情</span>
|
|
||||||
</button>
|
|
||||||
{{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(is_string($hook) || is_int($hook))
|
|
||||||
{
|
|
||||||
echo htmlspecialchars_decode($hook);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{{/php}}
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{{/foreach}}
|
|
||||||
{{/if}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{{if empty($data_list)}}
|
|
||||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
<!-- list end -->
|
|
||||||
|
|
||||||
<!-- bottom operation start -->
|
|
||||||
<div class="am-g am-margin-top-sm">
|
|
||||||
<!-- 底部操作钩子 -->
|
|
||||||
{{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_order_aftersale_bottom_operate</span>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{php}}
|
|
||||||
$hook_name = 'plugins_view_admin_order_aftersale_bottom_operate';
|
|
||||||
$hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>true]);
|
|
||||||
if(!empty($hook_data) && is_array($hook_data))
|
|
||||||
{
|
|
||||||
foreach($hook_data as $hook)
|
|
||||||
{
|
|
||||||
if(is_string($hook) || is_int($hook))
|
|
||||||
{
|
|
||||||
echo htmlspecialchars_decode($hook);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{{/php}}
|
|
||||||
</div>
|
|
||||||
<!-- bottom operation end -->
|
|
||||||
|
|
||||||
<!-- 审核弹窗 -->
|
|
||||||
<div class="am-popup" id="order-audit-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">
|
|
||||||
<dl class="dl-content">
|
|
||||||
<dt>用户信息</dt>
|
|
||||||
<dd class="user-info">
|
|
||||||
<img src="{{$attachment_host}}/static/common/images/user-img-sm.gif" class="am-img-thumbnail am-radius am-align-left" />
|
|
||||||
<ul class="user-base">
|
|
||||||
<li class="username">名称:<span>...</span></li>
|
|
||||||
<li class="nickname">昵称:<span>...</span></li>
|
|
||||||
<li class="mobile">手机:<span>...</span></li>
|
|
||||||
<li class="email">邮箱:<span>...</span></li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
<dt>申请信息</dt>
|
|
||||||
<dd class="apply-info">
|
|
||||||
<ul>
|
|
||||||
<li class="type">类型:<span>...</span></li>
|
|
||||||
<li class="reason">原因:<span>...</span></li>
|
|
||||||
<li class="number">数量:<span>...</span></li>
|
|
||||||
<li class="price">金额:<span class="am-text-warning">...</span></li>
|
|
||||||
<li class="msg">说明:<span>...</span></li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<form class="am-form form-validation-audit" action="{{:MyUrl('admin/orderaftersale/audit')}}" method="POST" request-type="ajax-reload">
|
|
||||||
<div class="am-form-group reply-submit am-form-group-refreshing">
|
|
||||||
<label class="am-block">退款方式</label>
|
|
||||||
{{if !empty($common_order_aftersale_refundment_list)}}
|
|
||||||
{{foreach $common_order_aftersale_refundment_list as $v}}
|
|
||||||
<label class="am-radio-inline am-success">
|
|
||||||
<input type="radio" name="refundment" value="{{$v.value}}" data-am-ucheck data-validation-message="请选择退款方式" required /> {{$v.name}}
|
|
||||||
</label>
|
|
||||||
{{/foreach}}
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="am-form-group reply-submit am-form-group-refreshing">
|
|
||||||
<input type="hidden" name="id" value="" />
|
|
||||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 拒绝弹窗 -->
|
|
||||||
<div class="am-popup" id="order-refuse-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">
|
|
||||||
<dl class="dl-content">
|
|
||||||
<dt>用户信息</dt>
|
|
||||||
<dd class="user-info">
|
|
||||||
<img src="{{$attachment_host}}/static/common/images/user-img-sm.gif" class="am-img-thumbnail am-radius am-align-left" />
|
|
||||||
<ul class="user-base">
|
|
||||||
<li class="username">名称:<span>...</span></li>
|
|
||||||
<li class="nickname">昵称:<span>...</span></li>
|
|
||||||
<li class="mobile">手机:<span>...</span></li>
|
|
||||||
<li class="email">邮箱:<span>...</span></li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
<dt>申请信息</dt>
|
|
||||||
<dd class="apply-info">
|
|
||||||
<ul>
|
|
||||||
<li class="type">类型:<span>...</span></li>
|
|
||||||
<li class="reason">原因:<span>...</span></li>
|
|
||||||
<li class="number">数量:<span>...</span></li>
|
|
||||||
<li class="price">金额:<span class="am-text-warning">...</span></li>
|
|
||||||
<li class="msg">说明:<span>...</span></li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<form class="am-form form-validation-refuse" action="{{:MyUrl('admin/orderaftersale/refuse')}}" method="POST" request-type="ajax-reload">
|
|
||||||
<div class="am-form-group reply-submit am-form-group-refreshing">
|
|
||||||
<label>拒绝原因</label>
|
|
||||||
<textarea name="refuse_reason" rows="5" class="am-radius" placeholder="拒绝原因格式 2~230 个字符" data-validation-message="拒绝原因格式 2~230 个字符" minlength="2" maxlength="230" required></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="am-form-group reply-submit am-form-group-refreshing">
|
|
||||||
<input type="hidden" name="id" value="" />
|
|
||||||
<button type="submit" class="am-btn am-btn-danger am-radius am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- page start -->
|
|
||||||
{{if !empty($data_list)}}
|
|
||||||
{{$page_html|raw}}
|
|
||||||
{{/if}}
|
|
||||||
<!-- page end -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<!-- right content end -->
|
<!-- 拒绝弹窗 -->
|
||||||
|
<div class="am-popup" id="order-refuse-popup">
|
||||||
<!-- footer start -->
|
<div class="am-popup-inner">
|
||||||
{{include file="public/footer" /}}
|
<div class="am-popup-hd">
|
||||||
<!-- footer end -->
|
<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="user-info">
|
||||||
|
<img src="{{$attachment_host}}/static/common/images/user-img-sm.gif" class="am-img-thumbnail am-radius am-align-left am-margin-right-xs am-margin-bottom-0 am-fl" width="35" height="35" />
|
||||||
|
<ul class="user-base">
|
||||||
|
<li class="username">名称:<span>...</span></li>
|
||||||
|
<li class="nickname">昵称:<span>...</span></li>
|
||||||
|
<li class="mobile">手机:<span>...</span></li>
|
||||||
|
<li class="email">邮箱:<span>...</span></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
<dt>申请信息</dt>
|
||||||
|
<dd class="apply-info">
|
||||||
|
<ul>
|
||||||
|
<li class="type">类型:<span>...</span></li>
|
||||||
|
<li class="reason">原因:<span>...</span></li>
|
||||||
|
<li class="number">数量:<span>...</span></li>
|
||||||
|
<li class="price">金额:<span class="am-text-warning">...</span></li>
|
||||||
|
<li class="msg">说明:<span>...</span></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<form class="am-form form-validation-refuse" action="{{:MyUrl('admin/orderaftersale/refuse')}}" method="POST" request-type="ajax-reload">
|
||||||
|
<div class="am-form-group reply-submit am-form-group-refreshing">
|
||||||
|
<label>拒绝原因</label>
|
||||||
|
<textarea name="refuse_reason" rows="5" class="am-radius" placeholder="拒绝原因格式 2~230 个字符" data-validation-message="拒绝原因格式 2~230 个字符" minlength="2" maxlength="230" required></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="am-form-group reply-submit am-form-group-refreshing">
|
||||||
|
<input type="hidden" name="id" value="" />
|
||||||
|
<button type="submit" class="am-btn am-btn-danger am-radius am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">确认</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/block}}
|
@ -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}}
|
@ -0,0 +1,35 @@
|
|||||||
|
<!-- 操作栏 -->
|
||||||
|
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/orderaftersale/detail', ['id'=>$module_data['id']])}}">
|
||||||
|
<i class="am-icon-eye"></i>
|
||||||
|
<span>详情</span>
|
||||||
|
</button>
|
||||||
|
{{if $module_data['status'] eq 0 and $module_data['type'] eq 1}}
|
||||||
|
<button type="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="{{$module_data.id}}" data-view="reload">
|
||||||
|
<i class="am-icon-check"></i>
|
||||||
|
<span>确认</span>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if $module_data['status'] eq 2}}
|
||||||
|
<button type="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($module_data))}}'>
|
||||||
|
<i class="am-icon-gavel"></i>
|
||||||
|
<span>审核</span>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if in_array($module_data['status'], [0,2])}}
|
||||||
|
<button type="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($module_data))}}'>
|
||||||
|
<i class="am-icon-warning"></i>
|
||||||
|
<span>拒绝</span>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if in_array($module_data['status'], [1,2])}}
|
||||||
|
<button type="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="{{$module_data.id}}" data-view="reload">
|
||||||
|
<i class="am-icon-paint-brush"></i>
|
||||||
|
<span>取消</span>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if in_array($module_data['status'], [4,5])}}
|
||||||
|
<button type="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="{{$module_data.id}}">
|
||||||
|
<i class="am-icon-trash-o"></i>
|
||||||
|
<span>删除</span>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
@ -0,0 +1,14 @@
|
|||||||
|
<!-- 用户信息 -->
|
||||||
|
{{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}}
|
@ -0,0 +1,14 @@
|
|||||||
|
<!-- 凭证 -->
|
||||||
|
{{if !empty($module_data) and !empty($module_data['images'])}}
|
||||||
|
<div data-am-widget="slider" class="am-slider am-slider-a1" data-am-slider='{"directionNav":false, slideshow:false}' >
|
||||||
|
<ul class="am-slides">
|
||||||
|
{{foreach $module_data.images as $img}}
|
||||||
|
<li>
|
||||||
|
<a href="{{$img}}" target="_blank">
|
||||||
|
<img src="{{$img}}" />
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
@ -415,7 +415,7 @@ class OrderAftersaleService
|
|||||||
$v['status_text'] = array_key_exists($v['status'], $status_list) ? $status_list[$v['status']]['name'] : '';
|
$v['status_text'] = array_key_exists($v['status'], $status_list) ? $status_list[$v['status']]['name'] : '';
|
||||||
|
|
||||||
// 退款方式
|
// 退款方式
|
||||||
$v['refundment_text'] = array_key_exists($v['refundment'], $refundment_list) ? $refundment_list[$v['refundment']]['name'] : '';
|
$v['refundment_text'] = ($v['status'] == 3 && array_key_exists($v['refundment'], $refundment_list)) ? $refundment_list[$v['refundment']]['name'] : '';
|
||||||
|
|
||||||
// 图片
|
// 图片
|
||||||
if(!empty($v['images']))
|
if(!empty($v['images']))
|
||||||
|
@ -17,15 +17,6 @@
|
|||||||
.business-item ul li:nth-child(2n) { margin-right: 0; }
|
.business-item ul li:nth-child(2n) { margin-right: 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户信息
|
|
||||||
*/
|
|
||||||
.user-info img {
|
|
||||||
max-width: 35px;
|
|
||||||
max-height: 35px;
|
|
||||||
margin: 0 5px 2px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟销售-密钥信息
|
* 虚拟销售-密钥信息
|
||||||
*/
|
*/
|
||||||
|
@ -1,41 +1,13 @@
|
|||||||
/**
|
/**
|
||||||
* 商品列表
|
* 商品列表
|
||||||
*/
|
*/
|
||||||
.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; }
|
.goods-spec li { color: #888; line-height: 16px; }
|
||||||
.original-price { color: #9c9c9c; text-decoration: line-through; }
|
.original-price { color: #9c9c9c; text-decoration: line-through; }
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户信息
|
|
||||||
*/
|
|
||||||
.user-info img {
|
|
||||||
max-width: 35px;
|
|
||||||
max-height: 35px;
|
|
||||||
margin: 0 5px 2px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表
|
* 列表
|
||||||
*/
|
*/
|
||||||
@media only screen and (min-width:640px) {
|
|
||||||
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) {
|
|
||||||
table.am-table tr .row-apply { width: 50%; }
|
|
||||||
table.am-table tr .row-operation, table.am-table tr .row-more { width: 75px; }
|
|
||||||
}
|
|
||||||
|
|
||||||
table.am-table .am-slider {
|
table.am-table .am-slider {
|
||||||
width: 100px;
|
|
||||||
max-height: 108px;
|
|
||||||
overflow: hidden;
|
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
-webkit-box-shadow: none;
|
-webkit-box-shadow: none;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user