Browse Source

Merge branch 'qs_local_order' into develop

# Conflicts:
#	app/Admin/Controllers/Test.php
#	app/Admin/routes.php
master
lanzu_qsy 5 years ago
parent
commit
1acbf14c35
  1. 29
      app/Admin/Controllers/ImsCjdcOrderMainController.php
  2. 6
      app/Admin/Controllers/Test.php
  3. 66
      app/Admin/Extensions/MyDetailPage.php
  4. 28
      app/Admin/Extensions/OrderDetail.php
  5. 36
      app/Admin/Extensions/OrderRefund.php
  6. 4
      app/Admin/Extensions/OrderStateHandle.php
  7. 54
      app/Admin/Forms/RefundNote.php
  8. 12
      app/Admin/Renderable/PostChart.php
  9. 11
      app/Models/LanzuServiceHorseman.php
  10. 10
      composer.lock
  11. 33
      config/admin.php
  12. 12
      config/order.php
  13. 49
      public/css/deatail.css
  14. 1
      resources/lang/zh-CN/admin.php
  15. 1
      resources/lang/zh-TW/admin.php
  16. 73
      resources/views/orderdetail.php

29
app/Admin/Controllers/ImsCjdcOrderMainController.php

@ -4,16 +4,24 @@ namespace App\Admin\Controllers;
use App\Admin\Extensions\CheckRow;
use App\Admin\Extensions\CouponTieEdit;
use App\Admin\Extensions\MyDetailPage;
use App\Admin\Extensions\OrderDetail;
use App\Admin\Extensions\OrderPrint;
use App\Admin\Extensions\OrderRefund;
use App\Admin\Extensions\OrderStateHandle;
use App\Admin\Forms\CouponTieForm;
use App\Admin\Renderable\PostChart;
use App\Admin\Repositories\ImsCjdcOrderMain;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;;
use Dcat\Admin\Controllers\AdminController;
use Dcat\Admin\Widgets\Lazy;
use Dcat\Admin\Widgets\Modal;
;
class ImsCjdcOrderMainController extends AdminController
{
@ -60,10 +68,14 @@ class ImsCjdcOrderMainController extends AdminController
}elseif ($state==3){
$actions->append(new OrderPrint('打印'));
$actions->append(new CheckRow($actions->row->id,$grid->model()->getCurrentPage(),'自送'));
}elseif ($state==8){
$actions->append(new OrderStateHandle('同意退款',9));
$actions->append(new OrderRefund($actions->row->id,$grid->model()->getCurrentPage(),'拒绝退款'));
}
$actions->append(new OrderDetail('详情'));
$actions->append(new OrderDetail($actions->row->id,'详情'));
});
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
@ -118,9 +130,16 @@ class ImsCjdcOrderMainController extends AdminController
});
}
public function orderDetail()
/**
* 订单详情
* @param Content $content
* @return Content
*/
public function orderDetail(Content $content)
{
echo 111;
$oid = request()->get('order_id');
// 实例化表单类并传递自定义参数
$detail = MyDetailPage::make(['order_id'=>$oid]);
return $content->header('订单详情')->body(Lazy::make($detail));
}
}

6
app/Admin/Controllers/Test.php

@ -63,6 +63,12 @@ class Test extends AdminController
}
return $response->getBody()->getContents();
}
public function getOrderDetail()
{
$oid = request()->get('oid');
$order = ImsCjdcOrderMain::where('id',$oid)->first();
return $order;
}

66
app/Admin/Extensions/MyDetailPage.php

@ -0,0 +1,66 @@
<?php
namespace App\Admin\Extensions;
use App\Models\ImsCjdcOrderMain;
use App\Models\LanzuServiceHorseman;
use Dcat\Admin\Admin;
use Dcat\Admin\Support\LazyRenderable;
class MyDetailPage extends LazyRenderable
{
protected static $js = ['https://cdn.jsdelivr.net/npm/vue'];
protected static $css = ['css/deatail.css'];
public function render()
{
$order = ImsCjdcOrderMain::where('id',$this->order_id)->first()->toArray();
if ($order){
$order['created_at'] = date('Y-m-d H:i:s',$order['created_at']);
$order['updated_at'] =$order['updated_at'] ? date('Y-m-d H:i:s',$order['updated_at']):null;
$order['pay_type'] = config('order.pay_type')[$order['pay_type']];
$order['shipping_type'] = config('order.shipping_type')[$order['shipping_type']];
$order['horseman_name'] = LanzuServiceHorseman::getName($order['horseman_id']);
}
//配送距离
//配送费
//拒绝退款理由
//退款总备注原因,单个商品或者单个子订单
//dd($order);
Admin::script(
<<<JS
var app = new Vue({
el:"#detail",
data:{
order_num: "{$order['order_num']}",
name: "{$order['name']}",
created_at: "{$order['created_at']}",
updated_at: "{$order['updated_at']}",
pay_type: "{$order['pay_type']}",
shipping_type: "{$order['shipping_type']}",
tel: "{$order['tel']}",
delivery_time_note: "{$order['delivery_time_note']}",
address: "{$order['address']}",
note: "{$order['note']}",
money: "{$order['money']}",
total_money: "{$order['total_money']}",
services_money: "{$order['services_money']}",
coupon_money: "{$order['coupon_money']}",
delivery_money: "{$order['delivery_money']}",
horseman_name: "{$order['horseman_name']}"
}
});
JS
);
return view('orderdetail');
}
}

28
app/Admin/Extensions/OrderDetail.php

@ -4,13 +4,39 @@
namespace App\Admin\Extensions;
use App\Admin\Forms\RefundNote;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Widgets\Modal;
class OrderDetail extends RowAction
{
public function __construct($title=null)
protected $title;
protected $order_id;
public function __construct($orderId,$title=null)
{
$this->order_id = $orderId;
parent::__construct($title);
}
/**
* 添加JS
* @return string
*/
protected function script()
{
return <<<JS
$('.detail_{$this->order_id}').on('click', function () {
window.location.href ="detail?order_id={$this->order_id}";
});
JS;
}
public function html()
{
$this->setHtmlAttribute(['class'=>"detail_{$this->order_id}"]);
return parent::html();
}
}

36
app/Admin/Extensions/OrderRefund.php

@ -0,0 +1,36 @@
<?php
namespace App\Admin\Extensions;
use App\Admin\Forms\RefundNote;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
class OrderRefund extends RowAction
{
protected $title;
protected $order_id;
protected $currentPage;
public function __construct($orderId,$currentPage,$title=null)
{
$this->order_id = $orderId;
$this->currentPage = $currentPage;
parent::__construct($title);
}
public function render()
{
// 实例化表单类并传递自定义参数
$form = RefundNote::make(['order_id'=>$this->order_id,'current_page'=>$this->currentPage]);
return Modal::make()
->lg()
->title('拒绝理由')
->body($form)
->button($this->title);
}
}

4
app/Admin/Extensions/OrderStateHandle.php

@ -2,6 +2,7 @@
namespace App\Admin\Extensions;
use App\Admin\Common\Rpc;
use App\Admin\Forms\RefundNote;
use App\Models\ImsCjdcOrderMain;
use Dcat\Admin\Grid\Displayers\Modal;
use Dcat\Admin\Grid\RowAction;
@ -46,7 +47,10 @@ class OrderStateHandle extends RowAction
Log::error('订单完成时分账接口调用失败',$result);
return $this->response()->error('操作失败')->refresh();
}
}elseif ($res&&$state==9){//同意退款
}
if ($res==true){
return $this->response()->success('操作成功')->refresh();
}else{

54
app/Admin/Forms/RefundNote.php

@ -0,0 +1,54 @@
<?php
namespace App\Admin\Forms;
use App\Models\ImsCjdcOrderMain;
use Dcat\Admin\Widgets\Form;
use Symfony\Component\HttpFoundation\Response;
class RefundNote extends Form
{
/**
* Handle the form request.
*
* @param array $input
*
* @return Response
*/
public function handle(array $input)
{
$note = request()->get('refuse_refund_note');
$oid = request()->get('order_id');
$current_page = request()->get('current_page');
$result = ImsCjdcOrderMain::where('id', $oid)->update([
'refuse_refund_note' => $note,
'state'=>10,
'updated_at' => time()
]);
if ($result) {
return $this->success('操作成功', "order?page={$current_page}");
} else {
return $this->error('操作失败');
}
}
/**
* Build a form here.
*/
public function form()
{
$this->textarea('refuse_refund_note', '原因')->placeholder('请填写拒绝退款的理由,字数不得超过50个字')->required();
$this->hidden('order_id')->value($this->data['order_id']);
$this->hidden('current_page')->value($this->data['current_page']);
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
}
}

12
app/Admin/Renderable/PostChart.php

@ -0,0 +1,12 @@
<?php
namespace App\Admin\Renderable;
use Dcat\Admin\Support\LazyRenderable;
class PostChart extends LazyRenderable
{
public function render()
{
return view('orderdetail');
}
}

11
app/Models/LanzuServiceHorseman.php

@ -27,4 +27,15 @@ class LanzuServiceHorseman extends Model
}
return $item;
}
public static function getName($hid=null)
{
//获取骑手名称
if ($hid){
$horseman = LanzuServiceHorseman::find($hid);
return $horseman->name;
}else{
return '-';
}
}
}

10
composer.lock

@ -423,16 +423,16 @@
},
{
"name": "dcat/laravel-admin",
"version": "1.7.1",
"version": "1.7.2",
"source": {
"type": "git",
"url": "https://github.com/jqhph/dcat-admin.git",
"reference": "b2694de229a9fd52f9ab048870d4e93b8ee7a505"
"reference": "7755db86943a3f31d6ebe4f6852be3efc82aec2e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jqhph/dcat-admin/zipball/b2694de229a9fd52f9ab048870d4e93b8ee7a505",
"reference": "b2694de229a9fd52f9ab048870d4e93b8ee7a505",
"url": "https://api.github.com/repos/jqhph/dcat-admin/zipball/7755db86943a3f31d6ebe4f6852be3efc82aec2e",
"reference": "7755db86943a3f31d6ebe4f6852be3efc82aec2e",
"shasum": "",
"mirrors": [
{
@ -491,7 +491,7 @@
"laravel",
"laravel admin"
],
"time": "2020-09-02T13:19:24+00:00"
"time": "2020-09-07T03:01:31+00:00"
},
{
"name": "dnoegel/php-xdg-base-dir",

33
config/admin.php

@ -11,7 +11,7 @@ return [
| login page.
|
*/
'name' => '懒族后台管理系统',
'name' => 'Dcat Admin',
/*
|--------------------------------------------------------------------------
@ -22,8 +22,7 @@ return [
| `img` tag, eg '<img src="http://logo-url" alt="Admin logo">'.
|
*/
// 'logo' => '<img src="/vendors/dcat-admin/images/logo.png" width="35"> &nbsp;懒族',
'logo' => '<img src="/vendors/dcat-admin/images/logo-head.png" width="35"> &nbsp;<span style="color:#ed7b1d;">懒族</span>',
'logo' => '<img src="/vendors/dcat-admin/images/logo.png" width="35"> &nbsp;Dcat Admin',
/*
|--------------------------------------------------------------------------
@ -166,7 +165,7 @@ return [
|--------------------------------------------------------------------------
*/
'helpers' => [
'enable' => env('APP_ENV')=='prod'? false:true,
'enable' => true,
],
/*
@ -222,12 +221,12 @@ return [
'upload' => [
// Disk in `config/filesystem.php`.
'disk' => 'oss',
'disk' => 'public',
// Image and file upload path under the disk above.
'directory' => [
'image' => 'mp_images',
'file' => 'mp_files',
'image' => 'images',
'file' => 'files',
],
],
@ -301,10 +300,18 @@ return [
| Admin map field provider
|--------------------------------------------------------------------------
|
| Supported: "tencent", "google", "yandex".
| Supported: "tencent", "google", "yandex", "baidu".
|
*/
'map_provider' => 'tencent',
'map' => [
'provider' => 'baidu',
'keys' => [
'tencent' => env('TENCENT_MAP_API_KEY'),
'google' => env('GOOGLE_API_KEY'),
'baidu' => env('BAIDU_MAP_API_KEY'),
],
],
/*
|--------------------------------------------------------------------------
@ -315,19 +322,19 @@ return [
*/
'layout' => [
// indigo, blue, blue-light, blue-dark, green
'color' => 'green',
'color' => 'indigo',
//'body_class' => 'dark-mode',
'body_class' => '',
'sidebar_collapsed' => false,
'sidebar_dark' => false,
// light, primary, dark
'sidebar_style' => 'light',
'dark_mode_switch' => false,
// bg-primary, bg-info, bg-warning, bg-success, bg-danger, bg-dark
'navbar_color' => 'bg-primary',
'navbar_color' => '',
],
/*

12
config/order.php

@ -30,6 +30,18 @@ return [
1000=>'创建达达运单失败',
],
//支付类型 1.微信支付2.余额支付3.积分支付4.货到付款
'pay_type'=>[
1=>'微信支付',
2=>'余额支付',
3=>'积分支付',
4=>'货到付款',
],
//配送方式:1服务站配送,2达达配送
'shipping_type'=>[1=>'服务站配送',2=>'达达配送'],
//达达测试0 如果为1则用为正式环境
'online'=>0,
'dada_test_config'=>[

49
public/css/deatail.css

@ -0,0 +1,49 @@
#detail .table-bordered td {
width: 50%;
white-space: initial !important;
font-size: 1.4rem;
}
.shop-box {
margin-top: 1rem;
font-size: 1.4rem;
}
.logo-img {
width: 8vw;
height: 10vh;
margin-right: 1rem;
}
.media {
padding: 1rem 2rem;
background-color: #f8f8f8;
}
.shop-logo {
width: 2rem;
height: 2rem;
margin-right: 0.6rem;
}
.alert {
margin-bottom: 0;
border-radius: 0;
}
.mt-0 {
max-width: 50rem;
font-size: 1.4rem;
}
.price {
max-width: 48rem;
display: inline-block;
overflow: hidden;
font-size: 1rem;
color: #27272788;
}
.money{
float: right;
font-size: 1.4rem;
}

1
resources/lang/zh-CN/admin.php

@ -31,6 +31,7 @@ return [
'confirm' => '确认',
'cancel' => '取消',
'refresh_succeeded' => '刷新成功 !',
'submit' => '提交',
'close' => '关闭',
'selected_options' => '已选中:num个选项',
'exceed_max_item' => '已超出最大可选数量',

1
resources/lang/zh-TW/admin.php

@ -32,6 +32,7 @@ return [
'cancel' => '取消',
'refresh_succeeded' => '刷新成功!',
'close' => '關閉',
'submit' => '提交',
'selected_options' => '已選中:num個選項',
'exceed_max_item' => '已超出最大可選數量',

73
resources/views/orderdetail.php

@ -1,14 +1,65 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<title>Laravel</title>
<div id="detail">
<!-- 用户信息表格 -->
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="text-nowrap" scope="col">订单编号:{{order_num}}</td>
<td colspan="5">创建时间:{{created_at}}</td>
</tr>
<tr>
<td class="text-nowrap" scope="row">用户名称:{{name}}</td>
<td colspan="5">联系电话:{{tel}}3</td>
</tr>
<tr>
<td class="text-nowrap" scope="row">收货地址:{{address}}</td>
<td colspan="5">更新时间:{{updated_at}}</td>
</tr>
<tr>
<td class="text-nowrap" scope="row">预约送达时间:{{delivery_time_note}}</td>
<td class="text-nowrap" scope="col">配送员:{{horseman_name}}</td>
</tr>
<tr>
<td class="text-nowrap" scope="row">配送距离:-- km</td>
<td colspan="5">配送费:{{delivery_money}} </td>
</tr>
<tr>
<td class="text-nowrap" scope="col">备注:{{note}}</td>
</tr>
</tbody>
</table>
<!-- 用户信息表格END -->
<!-- 店铺 -->
<div class="shop-box" v-for="">
<div class="alert alert-secondary" role="alert">
<img class="shop-logo" src="https://store.lanzu.vip/attachment/zh_cjdianc/2020/06/08/0695939116515895.jpg" alt="店铺logo"/>
<span>2222</span>
</div>
店铺商品
<div class="media">
<img class="logo-img" src="https://store.lanzu.vip/attachment/zh_cjdianc/2020/06/08/0695939116515895.jpg" class="align-self-center mr-3" alt="商品图片">
<div class="media-body">
<h5 class="mt-0">2222</h5>
<div>
<span class="price">222</span>
<span style="float: right;">X 2222</span>
</div>
<p class="mb-0" style="color: red;font-size: 1.4rem;">¥222</p>
</div>
</div>
</div>
<div class="money">
总金额: {{total_money}}
&ensp;&ensp;
优惠金额: <span style="color: red">-{{coupon_money}}</span>
&ensp;&ensp;
配送费: <span style="color: green">+{{delivery_money}}</span>
&ensp;&ensp;
增值服务费: <span style="color: green">+{{services_money}}</span>
&ensp;&ensp;
实付金额: {money}
</head>
<body >
<h1>{{$id}}</h1>
</body>
</html>
</div>
<!-- 店铺END -->
</div>
Loading…
Cancel
Save