mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2024-12-02 20:10:30 +08:00
订单售后管理
This commit is contained in:
parent
18e4efd19a
commit
ece92c66b0
@ -217,7 +217,8 @@ class Common extends Controller
|
|||||||
{
|
{
|
||||||
exit(json_encode(DataReturn($name.' 非法访问', -1000)));
|
exit(json_encode(DataReturn($name.' 非法访问', -1000)));
|
||||||
} else {
|
} else {
|
||||||
exit($name.' 非法访问');
|
$this->assign('msg', $name.' 非法访问');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ class CustomView extends Common
|
|||||||
$params = input();
|
$params = input();
|
||||||
|
|
||||||
// 分页
|
// 分页
|
||||||
$number = 10;
|
$number = MyC('admin_page_number', 10, true);
|
||||||
|
|
||||||
// 条件
|
// 条件
|
||||||
$where = CustomViewService::CustomViewListWhere($params);
|
$where = CustomViewService::CustomViewListWhere($params);
|
||||||
|
@ -37,7 +37,8 @@ class Error extends Common
|
|||||||
{
|
{
|
||||||
exit(json_encode(DataReturn($request->controller().' 控制器不存在', -1000)));
|
exit(json_encode(DataReturn($request->controller().' 控制器不存在', -1000)));
|
||||||
} else {
|
} else {
|
||||||
exit($request->controller().' 控制器不存在');
|
$this->assign('msg', $request->controller().' 控制器不存在');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ class Order extends Common
|
|||||||
$params['user_type'] = 'admin';
|
$params['user_type'] = 'admin';
|
||||||
|
|
||||||
// 分页
|
// 分页
|
||||||
$number = 10;
|
$number = MyC('admin_page_number', 10, true);
|
||||||
|
|
||||||
// 条件
|
// 条件
|
||||||
$where = OrderService::OrderListWhere($params);
|
$where = OrderService::OrderListWhere($params);
|
||||||
|
160
application/admin/controller/Orderaftersale.php
Normal file
160
application/admin/controller/Orderaftersale.php
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
<?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\controller;
|
||||||
|
|
||||||
|
use app\service\OrderService;
|
||||||
|
use app\service\OrderAftersaleService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单售后
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 0.0.1
|
||||||
|
* @datetime 2016-12-01T21:51:08+0800
|
||||||
|
*/
|
||||||
|
class Orderaftersale extends Common
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 构造方法
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2018-11-30
|
||||||
|
* @desc description
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
// 调用父类前置方法
|
||||||
|
parent::__construct();
|
||||||
|
|
||||||
|
// 登录校验
|
||||||
|
$this->IsLogin();
|
||||||
|
|
||||||
|
// 权限校验
|
||||||
|
$this->IsPower();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单列表
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2018-09-28
|
||||||
|
* @desc description
|
||||||
|
*/
|
||||||
|
public function Index()
|
||||||
|
{
|
||||||
|
// 参数
|
||||||
|
$params = input();
|
||||||
|
$params['admin'] = $this->admin;
|
||||||
|
$params['user_type'] = 'admin';
|
||||||
|
|
||||||
|
// 分页
|
||||||
|
$number = MyC('admin_page_number', 10, true);
|
||||||
|
|
||||||
|
// 条件
|
||||||
|
$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 = new \base\Page($page_params);
|
||||||
|
$this->assign('page_html', $page->GetPageHtml());
|
||||||
|
|
||||||
|
// 获取列表
|
||||||
|
$data_params = array(
|
||||||
|
'm' => $page->GetPageStarNumber(),
|
||||||
|
'n' => $number,
|
||||||
|
'where' => $where,
|
||||||
|
'is_public' => 0,
|
||||||
|
);
|
||||||
|
$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'));
|
||||||
|
|
||||||
|
// 参数
|
||||||
|
$this->assign('params', $params);
|
||||||
|
return $this->fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2019-05-23
|
||||||
|
* @desc description
|
||||||
|
*/
|
||||||
|
public function Confirm()
|
||||||
|
{
|
||||||
|
// 是否ajax请求
|
||||||
|
if(!IS_AJAX)
|
||||||
|
{
|
||||||
|
return $this->error('非法访问');
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = input();
|
||||||
|
return OrderAftersaleService::AftersaleConfirm($params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2019-05-23
|
||||||
|
* @desc description
|
||||||
|
*/
|
||||||
|
public function Audit()
|
||||||
|
{
|
||||||
|
// 是否ajax请求
|
||||||
|
if(!IS_AJAX)
|
||||||
|
{
|
||||||
|
return $this->error('非法访问');
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = input();
|
||||||
|
return OrderAftersaleService::AftersaleAudit($params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单取消
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2018-09-30
|
||||||
|
* @desc description
|
||||||
|
*/
|
||||||
|
public function Cancel()
|
||||||
|
{
|
||||||
|
// 是否ajax请求
|
||||||
|
if(!IS_AJAX)
|
||||||
|
{
|
||||||
|
return $this->error('非法访问');
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = input();
|
||||||
|
return OrderAftersaleService::AftersaleCancel($params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -95,7 +95,7 @@
|
|||||||
<!-- operation end -->
|
<!-- operation end -->
|
||||||
|
|
||||||
<!-- list start -->
|
<!-- list start -->
|
||||||
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5">
|
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="am-hide-sm-only th-goods">基础信息</th>
|
<th class="am-hide-sm-only th-goods">基础信息</th>
|
||||||
|
394
application/admin/view/default/orderaftersale/index.html
Normal file
394
application/admin/view/default/orderaftersale/index.html
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
{{include file="public/header" /}}
|
||||||
|
|
||||||
|
<!-- right content start -->
|
||||||
|
<div class="content-right">
|
||||||
|
<div class="content">
|
||||||
|
<!-- form start -->
|
||||||
|
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('admin/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('admin/orderaftersale/index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
<!-- form end -->
|
||||||
|
|
||||||
|
<!-- list start -->
|
||||||
|
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="row-user-info am-hide-md-down">用户信息</th>
|
||||||
|
<th class="row-goods am-hide-sm-only">商品信息</th>
|
||||||
|
<th class="row-apply">申请信息</th>
|
||||||
|
<th class="am-hide-sm-only">凭证</th>
|
||||||
|
<th class="am-hide-sm-only">状态</th>
|
||||||
|
<th class="am-hide-sm-only">快递信息</th>
|
||||||
|
<th>更多</th>
|
||||||
|
<th class="row-operation">操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{{if !empty($data_list)}}
|
||||||
|
{{foreach $data_list as $v}}
|
||||||
|
<tr id="data-list-{{$v.id}}">
|
||||||
|
<td class="user-info am-hide-md-down">
|
||||||
|
{{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-hide-sm-only">
|
||||||
|
<div class="goods-detail">
|
||||||
|
<a href="{{$v.order_data.items.goods_url}}" target="_blank">
|
||||||
|
<img src="{{$v.order_data.items.images}}">
|
||||||
|
</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">¥{{$v.order_data.items.original_price}}</p>
|
||||||
|
{{/if}}
|
||||||
|
<p class="line-price">¥{{$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 />
|
||||||
|
金额:{{$v.price}}<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='{"directionNav":false, slideshow:false}' >
|
||||||
|
<ul class="am-slides">
|
||||||
|
{{foreach $v.images as $img}}
|
||||||
|
<li>
|
||||||
|
<img src="{{$img}}" />
|
||||||
|
</li>
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
</td>
|
||||||
|
<td class="am-hide-sm-only">
|
||||||
|
<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-badge am-badge-danger am-margin-top-xs">{{$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>
|
||||||
|
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
|
||||||
|
<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="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>
|
||||||
|
<div class="goods-detail">
|
||||||
|
<a href="{{$v.order_data.items.goods_url}}" target="_blank">
|
||||||
|
<img src="{{$v.order_data.items.images}}">
|
||||||
|
</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">¥{{$v.order_data.items.original_price}}</p>
|
||||||
|
{{/if}}
|
||||||
|
<p class="line-price">¥{{$v.order_data.items.price}} x {{$v.order_data.items.buy_number}}</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>申请信息</dt>
|
||||||
|
<dd>
|
||||||
|
类型:{{$v.type_text}}<br />
|
||||||
|
原因:{{$v.reason}}<br />
|
||||||
|
数量:{{$v.number}}<br />
|
||||||
|
金额:{{$v.price}}<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}}
|
||||||
|
{{if $v['status'] eq 4 and !empty($v['refuse_reason'])}}
|
||||||
|
<span class="am-badge am-badge-danger am-margin-top-xs">{{$v.refuse_reason}}</span>
|
||||||
|
{{/if}}
|
||||||
|
</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>
|
||||||
|
{{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-icon-check am-btn-block submit-ajax" data-url="{{:MyUrl('admin/orderaftersale/confirm')}}" data-id="{{$v.id}}" data-view="reload"> 确认</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if $v['status'] eq 2}}
|
||||||
|
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-gavel am-btn-block submit-audit" data-json='{{:json_encode($v)}}'> 审核</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if in_array($v['status'], [0,2])}}
|
||||||
|
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-icon-warning am-btn-block submit-refuse" data-json='{{:json_encode($v)}}'> 拒绝</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if in_array($v['status'], [1,2])}}
|
||||||
|
<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('admin/orderaftersale/cancel')}}" data-id="{{$v.id}}" data-view="reload"> 取消</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if in_array($v['status'], [4,5])}}
|
||||||
|
<button class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block am-icon-trash-o submit-delete" data-url="{{:MyUrl('admin/orderaftersale/delete')}}" data-id="{{$v.id}}"> 删除</button>
|
||||||
|
{{/if}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/foreach}}
|
||||||
|
{{/if}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{{if empty($data_list)}}
|
||||||
|
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||||
|
{{/if}}
|
||||||
|
<!-- list 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>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<form class="am-form form-validation-audit" action="{{:MyUrl('admin/orderaftersale/audit')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
|
||||||
|
<div class="am-form-group">
|
||||||
|
<label class="am-block">退款方式</label>
|
||||||
|
{{if !empty($common_order_aftersale_refundment_list)}}
|
||||||
|
{{foreach $common_order_aftersale_refundment_list as $k=>$v}}
|
||||||
|
<label class="am-radio-inline am-success">
|
||||||
|
<input type="radio" name="refundment" value="{{$v.value}}" data-am-ucheck {{if $k eq 0}} data-validation-message="请选择退狂方式" required{{/if}} /> {{$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 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>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<form class="am-form form-validation-refuse" action="{{:MyUrl('admin/orderaftersale/refuse')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
|
||||||
|
<div class="am-form-group">
|
||||||
|
<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>
|
||||||
|
<!-- right content end -->
|
||||||
|
|
||||||
|
<!-- footer start -->
|
||||||
|
{{include file="public/footer" /}}
|
||||||
|
<!-- footer end -->
|
@ -196,6 +196,13 @@ class Orderaftersale extends Common
|
|||||||
*/
|
*/
|
||||||
public function Create()
|
public function Create()
|
||||||
{
|
{
|
||||||
|
// 是否ajax请求
|
||||||
|
if(!IS_AJAX)
|
||||||
|
{
|
||||||
|
$this->assign('msg', '非法访问');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
|
}
|
||||||
|
|
||||||
$params = input();
|
$params = input();
|
||||||
$params['user'] = $this->user;
|
$params['user'] = $this->user;
|
||||||
return OrderAftersaleService::AftersaleCreate($params);
|
return OrderAftersaleService::AftersaleCreate($params);
|
||||||
@ -211,6 +218,13 @@ class Orderaftersale extends Common
|
|||||||
*/
|
*/
|
||||||
public function Delivery()
|
public function Delivery()
|
||||||
{
|
{
|
||||||
|
// 是否ajax请求
|
||||||
|
if(!IS_AJAX)
|
||||||
|
{
|
||||||
|
$this->assign('msg', '非法访问');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
|
}
|
||||||
|
|
||||||
$params = input();
|
$params = input();
|
||||||
$params['user'] = $this->user;
|
$params['user'] = $this->user;
|
||||||
return OrderAftersaleService::AftersaleDelivery($params);
|
return OrderAftersaleService::AftersaleDelivery($params);
|
||||||
@ -226,15 +240,16 @@ class Orderaftersale extends Common
|
|||||||
*/
|
*/
|
||||||
public function Cancel()
|
public function Cancel()
|
||||||
{
|
{
|
||||||
if(input('post.'))
|
// 是否ajax请求
|
||||||
|
if(!IS_AJAX)
|
||||||
{
|
{
|
||||||
$params = input('post.');
|
|
||||||
$params['user'] = $this->user;
|
|
||||||
return OrderAftersaleService::AftersaleCancel($params);
|
|
||||||
} else {
|
|
||||||
$this->assign('msg', '非法访问');
|
$this->assign('msg', '非法访问');
|
||||||
return $this->fetch('public/tips_error');
|
return $this->fetch('public/tips_error');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$params = input('post.');
|
||||||
|
$params['user'] = $this->user;
|
||||||
|
return OrderAftersaleService::AftersaleCancel($params);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
@ -187,7 +187,8 @@ class Safety extends Common
|
|||||||
// 是否ajax请求
|
// 是否ajax请求
|
||||||
if(!IS_AJAX)
|
if(!IS_AJAX)
|
||||||
{
|
{
|
||||||
return $this->error('非法访问');
|
$this->assign('msg', '非法访问');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 开始处理
|
// 开始处理
|
||||||
@ -209,7 +210,8 @@ class Safety extends Common
|
|||||||
// 是否ajax请求
|
// 是否ajax请求
|
||||||
if(!IS_AJAX)
|
if(!IS_AJAX)
|
||||||
{
|
{
|
||||||
return $this->error('非法访问');
|
$this->assign('msg', '非法访问');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 开始处理
|
// 开始处理
|
||||||
@ -230,7 +232,8 @@ class Safety extends Common
|
|||||||
// 是否ajax请求
|
// 是否ajax请求
|
||||||
if(!IS_AJAX)
|
if(!IS_AJAX)
|
||||||
{
|
{
|
||||||
return $this->error('非法访问');
|
$this->assign('msg', '非法访问');
|
||||||
|
return $this->fetch('public/tips_error');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 开始处理
|
// 开始处理
|
||||||
|
@ -126,16 +126,18 @@
|
|||||||
<!-- 订单抬头 -->
|
<!-- 订单抬头 -->
|
||||||
<div class="am-alert am-alert-secondary meila-radius">
|
<div class="am-alert am-alert-secondary meila-radius">
|
||||||
<table class="content-title">
|
<table class="content-title">
|
||||||
<tbody><tr>
|
<tbody>
|
||||||
<th class="row-content">商品</th>
|
<tr>
|
||||||
<th class="row-price am-hide-sm-only">单价</th>
|
<th class="row-content">商品</th>
|
||||||
<th class="row-number am-hide-sm-only">数量</th>
|
<th class="row-price am-hide-sm-only">单价</th>
|
||||||
<th class="row-goods-operate">商品操作</th>
|
<th class="row-number am-hide-sm-only">数量</th>
|
||||||
<th class="row-total-price am-hide-sm-only">合计</th>
|
<th class="row-goods-operate">商品操作</th>
|
||||||
<th class="row-status">状态</th>
|
<th class="row-total-price am-hide-sm-only">合计</th>
|
||||||
<th class="row-operate">操作</th>
|
<th class="row-status">状态</th>
|
||||||
</tr>
|
<th class="row-operate">操作</th>
|
||||||
</tbody></table>
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 订单列表 -->
|
<!-- 订单列表 -->
|
||||||
|
@ -166,8 +166,11 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{if in_array($v['status'], [0,3])}}
|
{{if $v['status'] eq 1 and $v['type'] eq 1}}
|
||||||
<button type="button" class="am-btn am-btn-danger 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>
|
<a href="{{:MyUrl('index/orderaftersale/aftersale', ['id'=>$v['order_id'], 'gid'=>$v['goods_id']])}}" target="_blank" class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-send am-btn-block"> 发货</a>
|
||||||
|
{{/if}}
|
||||||
|
{{if !in_array($v['status'], [3,4,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}}
|
{{/if}}
|
||||||
<a href="{{:MyUrl('index/orderaftersale/detail', ['id'=>$v['id']])}}" target="_blank" class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes am-btn-block"> 详情</a>
|
<a href="{{:MyUrl('index/orderaftersale/detail', ['id'=>$v['id']])}}" target="_blank" class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes am-btn-block"> 详情</a>
|
||||||
</td>
|
</td>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<form class="am-topbar-form am-topbar-left am-form-inline am-show-sm-only navigation-search" role="search" action="{{:MyUrl('index/search/index')}}" method="POST">
|
<form class="am-topbar-form am-topbar-left am-form-inline am-show-sm-only navigation-search" role="search" action="{{:MyUrl('index/search/index')}}" method="POST">
|
||||||
<div class="am-input-group am-input-group-sm">
|
<div class="am-input-group am-input-group-sm">
|
||||||
<input type="text" name="keywords" class="am-form-field" placeholder="其实搜索很简单^_^ !" value="{{if !empty($params['keywords'])}}{{$params.keywords}}{{/if}}" autocomplete="off" />
|
<input type="text" name="wd" class="am-form-field" placeholder="其实搜索很简单^_^ !" value="{{if !empty($params['wd'])}}{{$params.wd}}{{/if}}" autocomplete="off" />
|
||||||
<span class="am-input-group-btn">
|
<span class="am-input-group-btn">
|
||||||
<button class="am-btn am-btn-default" type="submit">
|
<button class="am-btn am-btn-default" type="submit">
|
||||||
<span class="am-icon-search am-icon-xs"></span>
|
<span class="am-icon-search am-icon-xs"></span>
|
||||||
|
@ -525,19 +525,94 @@ class OrderAftersaleService
|
|||||||
return DataReturn($ret, -1);
|
return DataReturn($ret, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数据更新
|
// 条件
|
||||||
$where = [
|
$where = [
|
||||||
'id' => intval($params['id']),
|
'id' => intval($params['id']),
|
||||||
];
|
];
|
||||||
if(!empty($params['user']['id']))
|
if(!empty($params['user']))
|
||||||
{
|
{
|
||||||
$where['user_id'] = $params['user']['id'];
|
$where['user_id'] = $params['user']['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 售后订单
|
||||||
|
$aftersale = Db::name('OrderAftersale')->where($where)->find();
|
||||||
|
if(empty($aftersale))
|
||||||
|
{
|
||||||
|
return DataReturn('数据不存在或已删除', -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 状态校验
|
||||||
|
if(in_array($aftersale['status'], [3,5]))
|
||||||
|
{
|
||||||
|
$status_list = lang('common_order_aftersale_status_list');
|
||||||
|
return DataReturn('状态不可操作['.$status_list[$aftersale['status']]['name'].']', -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据更新
|
||||||
if(Db::name('OrderAftersale')->where($where)->update(['status'=>5, 'cancel_time'=>time(), 'upd_time'=>time()]))
|
if(Db::name('OrderAftersale')->where($where)->update(['status'=>5, 'cancel_time'=>time(), 'upd_time'=>time()]))
|
||||||
{
|
{
|
||||||
return DataReturn('取消成功');
|
return DataReturn('取消成功');
|
||||||
}
|
}
|
||||||
return DataReturn('取消失败', -100);
|
return DataReturn('取消失败', -100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2019-05-27
|
||||||
|
* @desc description
|
||||||
|
* @param [array] $params [输入参数]
|
||||||
|
*/
|
||||||
|
public static function AftersaleConfirm($params = [])
|
||||||
|
{
|
||||||
|
// 请求参数
|
||||||
|
$p = [
|
||||||
|
[
|
||||||
|
'checked_type' => 'empty',
|
||||||
|
'key_name' => 'id',
|
||||||
|
'error_msg' => '操作id有误',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$ret = ParamsChecked($params, $p);
|
||||||
|
if($ret !== true)
|
||||||
|
{
|
||||||
|
return DataReturn($ret, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 条件
|
||||||
|
$where = [
|
||||||
|
'id' => intval($params['id']),
|
||||||
|
];
|
||||||
|
|
||||||
|
// 售后订单
|
||||||
|
$aftersale = Db::name('OrderAftersale')->where($where)->find();
|
||||||
|
if(empty($aftersale))
|
||||||
|
{
|
||||||
|
return DataReturn('数据不存在或已删除', -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 状态校验
|
||||||
|
if($aftersale['status'] != 0)
|
||||||
|
{
|
||||||
|
$status_list = lang('common_order_aftersale_status_list');
|
||||||
|
return DataReturn('状态不可操作['.$status_list[$aftersale['status']]['name'].']', -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 类型
|
||||||
|
if($aftersale['type'] != 1)
|
||||||
|
{
|
||||||
|
$aftersale_type_list = lang('common_order_aftersale_type_list');
|
||||||
|
return DataReturn('类型不可操作['.$aftersale_type_list[$aftersale['type']]['name'].']', -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据更新
|
||||||
|
if(Db::name('OrderAftersale')->where($where)->update(['status'=>1, 'confirm_time'=>time(), 'upd_time'=>time()]))
|
||||||
|
{
|
||||||
|
return DataReturn('确认成功');
|
||||||
|
}
|
||||||
|
return DataReturn('确认失败', -100);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
File diff suppressed because one or more lines are too long
@ -1,6 +1,26 @@
|
|||||||
/**
|
/**
|
||||||
* 公共
|
* 公共
|
||||||
*/
|
*/
|
||||||
|
div, span, applet, object, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, pre,
|
||||||
|
a, abbr, acronym, address, big, cite, code,
|
||||||
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
menu, nav, output, ruby, section, summary,
|
||||||
|
time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
font-family: arial,"Lantinghei SC","Microsoft Yahei";
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
* { font-size: 12px; }
|
* { font-size: 12px; }
|
||||||
.w100 {width:100%;}
|
.w100 {width:100%;}
|
||||||
.fw-100 {font-weight:100;}
|
.fw-100 {font-weight:100;}
|
||||||
@ -64,8 +84,6 @@ h4 {line-height:22px;}
|
|||||||
h4 small {color:#444444;}
|
h4 small {color:#444444;}
|
||||||
h5 {font-size:15px;}
|
h5 {font-size:15px;}
|
||||||
h5 small {color:#444444;}
|
h5 small {color:#444444;}
|
||||||
p {line-height:1.6;}
|
|
||||||
* {outline:none !important;}
|
|
||||||
b {font-weight:600;}
|
b {font-weight:600;}
|
||||||
i{ font-style: normal; }
|
i{ font-style: normal; }
|
||||||
a:hover {outline:0;text-decoration:none;}
|
a:hover {outline:0;text-decoration:none;}
|
||||||
|
49
public/static/admin/default/css/orderaftersale.css
Normal file
49
public/static/admin/default/css/orderaftersale.css
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
* 商品列表
|
||||||
|
*/
|
||||||
|
.content-right .goods-detail img { width: 80px; height: 80px; position: absolute; border: 1px solid #eee; }
|
||||||
|
.content-right .goods-detail { position: relative; min-height: 80px; }
|
||||||
|
.content-right .goods-title { display: block; max-height: 36px; overflow: hidden; text-overflow: ellipsis; }
|
||||||
|
.content-right .goods-title:hover { text-decoration: underline; }
|
||||||
|
.content-right .goods-base {float: left; top: 0; margin-left: 85px; }
|
||||||
|
.content-right .goods-attr { margin-top: 5px; }
|
||||||
|
.content-right .goods-attr li { color: #888; line-height: 16px; }
|
||||||
|
.content-right .original-price, .content-right .line-price { font-family: Verdana,Tahoma,arial; }
|
||||||
|
.content-right .original-price { color: #9c9c9c; text-decoration: line-through; }
|
||||||
|
.content-right .line-price { color: #3c3c3c; font-weight: 700; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户信息
|
||||||
|
*/
|
||||||
|
.content-right .user-info img {
|
||||||
|
max-width: 35px;
|
||||||
|
max-height: 35px;
|
||||||
|
margin: 0 5px 2px 0;
|
||||||
|
}
|
||||||
|
.content-right ul {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表
|
||||||
|
*/
|
||||||
|
@media only screen and (min-width:640px) {
|
||||||
|
.content-right table.am-table tr .row-user-info { width: 20%; }
|
||||||
|
.content-right table.am-table tr .row-goods { width: 20%; }
|
||||||
|
.content-right table.am-table tr .row-apply { width: 25%; }
|
||||||
|
.content-right 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 { width: 75px; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-right table.am-table .am-slider {
|
||||||
|
width: 100px;
|
||||||
|
max-height: 108px;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
}
|
42
public/static/admin/default/js/orderaftersale.js
Normal file
42
public/static/admin/default/js/orderaftersale.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// 表单初始化
|
||||||
|
FromInit('form.form-validation-audit');
|
||||||
|
FromInit('form.form-validation-refuse');
|
||||||
|
|
||||||
|
$(function()
|
||||||
|
{
|
||||||
|
// 审核
|
||||||
|
$('table.am-table .submit-audit').on('click', function()
|
||||||
|
{
|
||||||
|
var $audit_popup = $('#order-audit-popup');
|
||||||
|
var json = $(this).data('json');
|
||||||
|
console.log(json);
|
||||||
|
|
||||||
|
// 用户信息
|
||||||
|
$audit_popup.find('input[name="id"]').val(json.id);
|
||||||
|
$audit_popup.find('.user-info img').attr('src', json.user.avatar || $audit_popup.find('.user-info img').attr('src'));
|
||||||
|
$audit_popup.find('.user-info .user-base .username span').html(json.user.username || '<span class="cr-ddd">未填写</span>');
|
||||||
|
$audit_popup.find('.user-info .user-base .nickname span').html(json.user.nickname || '<span class="cr-ddd">未填写</span>');
|
||||||
|
$audit_popup.find('.user-info .user-base .mobile span').html(json.user.mobile || '<span class="cr-ddd">未填写</span>');
|
||||||
|
$audit_popup.find('.user-info .user-base .email span').html(json.user.email || '<span class="cr-ddd">未填写</span>');
|
||||||
|
|
||||||
|
$audit_popup.modal();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 拒绝
|
||||||
|
$('table.am-table .submit-refuse').on('click', function()
|
||||||
|
{
|
||||||
|
var $refuse_popup = $('#order-refuse-popup');
|
||||||
|
var json = $(this).data('json');
|
||||||
|
console.log(json);
|
||||||
|
|
||||||
|
// 用户信息
|
||||||
|
$refuse_popup.find('input[name="id"]').val(json.id);
|
||||||
|
$refuse_popup.find('.user-info img').attr('src', json.user.avatar || $refuse_popup.find('.user-info img').attr('src'));
|
||||||
|
$refuse_popup.find('.user-info .user-base .username span').html(json.user.username || '<span class="cr-ddd">未填写</span>');
|
||||||
|
$refuse_popup.find('.user-info .user-base .nickname span').html(json.user.nickname || '<span class="cr-ddd">未填写</span>');
|
||||||
|
$refuse_popup.find('.user-info .user-base .mobile span').html(json.user.mobile || '<span class="cr-ddd">未填写</span>');
|
||||||
|
$refuse_popup.find('.user-info .user-base .email span').html(json.user.email || '<span class="cr-ddd">未填写</span>');
|
||||||
|
|
||||||
|
$refuse_popup.modal();
|
||||||
|
});
|
||||||
|
});
|
@ -1,16 +1,16 @@
|
|||||||
/**
|
/**
|
||||||
* 商品列表
|
* 商品列表
|
||||||
*/
|
*/
|
||||||
.goods-detail img { width: 80px; height: 80px; position: absolute; border: 1px solid #eee; }
|
.user-content-body .goods-detail img { width: 80px; height: 80px; position: absolute; border: 1px solid #eee; }
|
||||||
.goods-detail { position: relative; min-height: 80px; }
|
.user-content-body .goods-detail { position: relative; min-height: 80px; }
|
||||||
.goods-title { display: block; max-height: 36px; overflow: hidden; text-overflow: ellipsis; }
|
.user-content-body .goods-title { display: block; max-height: 36px; overflow: hidden; text-overflow: ellipsis; }
|
||||||
.goods-title:hover { text-decoration: underline; }
|
.user-content-body .goods-title:hover { text-decoration: underline; }
|
||||||
.goods-base {float: left; top: 0; margin-left: 85px; }
|
.user-content-body .goods-base {float: left; top: 0; margin-left: 85px; }
|
||||||
.goods-attr { margin-top: 5px; }
|
.user-content-body .goods-attr { margin-top: 5px; }
|
||||||
.goods-attr li { color: #888; line-height: 16px; }
|
.user-content-body .goods-attr li { color: #888; line-height: 16px; }
|
||||||
.original-price, .line-price { font-family: Verdana,Tahoma,arial; }
|
.user-content-body .original-price, .user-content-body .line-price { font-family: Verdana,Tahoma,arial; }
|
||||||
.original-price { color: #9c9c9c; text-decoration: line-through; }
|
.user-content-body .original-price { color: #9c9c9c; text-decoration: line-through; }
|
||||||
.line-price { color: #3c3c3c; font-weight: 700; }
|
.user-content-body .line-price { color: #3c3c3c; font-weight: 700; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表
|
* 列表
|
||||||
|
Loading…
Reference in New Issue
Block a user