Accept Merge Request #40: (feature/hant -> develop)
Merge Request: 面板 Created By: @todayswind Accepted By: @todayswind URL: https://g-bcrc3009.coding.net/p/allocatr/d/allocatr/git/merge/40?initial=true
This commit is contained in:
commit
9405f14322
|
|
@ -4,6 +4,7 @@ namespace app\admin\controller;
|
|||
|
||||
use app\admin\addresmart\Address;
|
||||
use app\admin\model\Abnormal;
|
||||
use app\admin\model\Aftersale;
|
||||
use app\admin\model\AuthGroupAccess;
|
||||
use app\admin\model\order\Invoice;
|
||||
use app\admin\model\OrderAbnormal;
|
||||
|
|
@ -58,10 +59,12 @@ class Orderplan extends Backend
|
|||
$top = $this->getTopTotal();
|
||||
$lines = $this->getLine();
|
||||
$pie = $this->getPie();
|
||||
$order = $this->getOrder();
|
||||
$this->success(data: [
|
||||
'top' => $top,
|
||||
'lines' => $lines,
|
||||
'pie' => $pie,
|
||||
'order' => $order,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -189,15 +192,71 @@ class Orderplan extends Backend
|
|||
}
|
||||
|
||||
|
||||
private function buildDate($build)
|
||||
private function buildDate($build,$table_name = null)
|
||||
{
|
||||
$start = now()->modify('-14 days')->format('Y-m-d');
|
||||
$end_at = now()->format('Y-m-d');
|
||||
|
||||
if ($table_name){
|
||||
$build->where($table_name.'.create_time', 'between', [$start, $end_at]);
|
||||
}else{
|
||||
$build->where('create_time', 'between', [$start, $end_at]);
|
||||
|
||||
}
|
||||
return $build;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function getOrder()
|
||||
{
|
||||
$build = new OrderAbnormal();
|
||||
$res = $build
|
||||
->where('status',0)
|
||||
->count('id');
|
||||
$out ['abnormal'] = $res;
|
||||
|
||||
$build = new \app\admin\model\Order();
|
||||
$res = $build
|
||||
->where('status',\app\admin\model\Order::STATUS_CHECKING)
|
||||
->count('id');
|
||||
$out ['check'] = $res;
|
||||
|
||||
|
||||
$build = new \app\admin\model\Order();
|
||||
$res = $build
|
||||
->where('status',\app\admin\model\Order::STATUS_AUDITING)
|
||||
->count('id');
|
||||
$out ['auditing'] = $res;
|
||||
|
||||
|
||||
$build = new \app\admin\model\Order();
|
||||
$res = $build
|
||||
->alias('a')
|
||||
->join('order_review b','a.id = b.order_id','left')
|
||||
->where('a.status','in',[\app\admin\model\Order::STATUS_FINISHED,\app\admin\model\Order::STATUS_CANCEL])
|
||||
->whereNull('b.id')
|
||||
->count('a.id');
|
||||
|
||||
$out ['review'] = $res;
|
||||
|
||||
|
||||
$build = new Aftersale();
|
||||
$res = $build
|
||||
->where('status',1)
|
||||
->count('id');
|
||||
$out ['after_sale'] = $res;
|
||||
|
||||
$build = new Invoice();
|
||||
$res = $build
|
||||
->where('status',0)
|
||||
->count('id');
|
||||
$out ['invoice'] = $res;
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
private function prepareEchartsBarData(array $data, string $startDate, string $endDate): array
|
||||
{
|
||||
// 将原始数据用日期作为键索引
|
||||
|
|
@ -285,4 +344,5 @@ class Orderplan extends Backend
|
|||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,9 +17,10 @@
|
|||
<!-- </form>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="row" style="margin-bottom: 10px">
|
||||
<div class="col-md-12" style="margin-bottom: 10px">
|
||||
<div style="display: flex">
|
||||
<!-- 卡片 1: 总用户数 -->
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-3">
|
||||
<div class="myplan">
|
||||
<div class="myplan-title">
|
||||
<span style="color: red" class="fa fa-line-chart fa-fw"></span>
|
||||
|
|
@ -32,7 +33,7 @@
|
|||
</div>
|
||||
|
||||
<!-- 卡片 1: 总用户数 -->
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-3">
|
||||
<div class="myplan">
|
||||
<div class="myplan-title">
|
||||
<span style="color: #43cb34" class="fa fa-list-alt fa-fw"></span>
|
||||
|
|
@ -45,7 +46,20 @@
|
|||
</div>
|
||||
|
||||
<!-- 卡片 1: 总用户数 -->
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-3">
|
||||
<div class="myplan">
|
||||
<div class="myplan-title">
|
||||
<span style="color: #43cb34" class="fa fa-list-alt fa-fw"></span>
|
||||
<span>总营业额</span>
|
||||
</div>
|
||||
<div class="myplan-num">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 卡片 1: 总用户数 -->
|
||||
<div class="col-md-3">
|
||||
<div class="myplan">
|
||||
<div class="myplan-title">
|
||||
<span style="color: #b3d4fc" class="fa fa-group fa-fw"></span>
|
||||
|
|
@ -57,156 +71,10 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<div id="money_line" style="height: 600px;width: 100%">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-6">
|
||||
<div class="todo-plan" style="color: #55d2fe">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-warning"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>报错</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
1,240
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="todo-plan" style="color: #86a7ff">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-gear"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待配置</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
1,240
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="todo-plan" style="color: #4de171">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-envelope-open"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待审核</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
1,240
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="todo-plan" style="color: #b896ff">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-pencil"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待回访</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
1,240
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="todo-plan" style="color: #f8bf18">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-leaf"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待售后</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
1,240
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="todo-plan" style="color: #f58164">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-file-text-o"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>开票</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
1,240
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-6">
|
||||
|
||||
<div id="cancel_order_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<div id="item_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
|
||||
<div id="area_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
|
||||
<div id="source_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-3">
|
||||
<div class="order-count-plan" style="color: #55d2fe">
|
||||
<div class="order-count-title">
|
||||
<div class="todo-plan-title-text text-left" style="flex: 1">
|
||||
|
|
@ -221,24 +89,159 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12" style="margin-top: 10px;margin-bottom: 10px">
|
||||
<div class="col-md-2">
|
||||
<div class="todo-plan" style="color: #55d2fe">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-warning"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>报错</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a onclick="Backend.api.addtabs('/admin/orders/abnormal','报错订单')" href="">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="todo-plan" style="color: #86a7ff">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-gear"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待配置</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a onclick="Backend.api.addtabs('/admin/orders/configorder','待配置')" href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="todo-plan" style="color: #4de171">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-envelope-open"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待审核</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a onclick="Backend.api.addtabs('/admin/orders/auditorder','待审核')" href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="todo-plan" style="color: #b896ff">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-pencil"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待回访</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a onclick="Backend.api.addtabs('/admin/orders/revisitorder','待回访')" href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="todo-plan" style="color: #f8bf18">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-leaf"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>待售后</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a onclick="Backend.api.addtabs('/admin/aftersales/aftersale','待售后')" href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="todo-plan" style="color: #f58164">
|
||||
<div class="todo-plan-title">
|
||||
<div style="font-size: 32px" class="fa fa-file-text-o"></div>
|
||||
<div class="todo-plan-title-text" style="flex: 1">
|
||||
<p>开票</p>
|
||||
<p>单位/笔</p>
|
||||
</div>
|
||||
<div>
|
||||
<a onclick="Backend.api.addtabs('/admin/orders/abnormal','开票')" href="#">详情></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="todo-plan-num text-center">
|
||||
loading
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div id="money_line" style="height: 600px;width: 100%">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-3">
|
||||
|
||||
<div id="cancel_order_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
|
||||
<div id="item_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
|
||||
<div id="area_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
|
||||
<div id="source_pie" style="width: 100%;height:400px">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-6">
|
||||
<div class="order-count-plan" style="color: #55d2fe">
|
||||
<div class="order-count-title" style="background-color: #f5f6ff;color: #6b6e73">
|
||||
<div class="todo-plan-title-text text-left" style="flex: 1">
|
||||
<span class="fa fa-phone-square"></span> 售后申请
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-count-num text-left">
|
||||
1240
|
||||
</div>
|
||||
<div class="order-count-num-sub text-left">
|
||||
待处理
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">订单数据</div>
|
||||
<div class="col-md-6 ">
|
||||
<div class="static-plan">
|
||||
<div class="static-img fa fa-jpy" style="color: #2281df">
|
||||
|
|
@ -468,6 +471,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<h4 class="mb-4">热门服务</h4>
|
||||
|
|
@ -620,7 +624,6 @@
|
|||
/*height: 100px;*/
|
||||
box-shadow: 0 2px 6px rgba(12, 72, 128, .1);
|
||||
border-radius: 4px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.todo-plan-num {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts','echarts-th
|
|||
dashboard: function () {
|
||||
Fast.api.ajax({
|
||||
url: 'orderplan/data',
|
||||
method:'get'
|
||||
}, function (data, ret) {
|
||||
Controller.echarts.top(data.top);
|
||||
Controller.echarts.order(data.order);
|
||||
Controller.echarts.money_line(data.lines);
|
||||
Controller.echarts.cancel_order_pie(data.pie.cancel);
|
||||
Controller.echarts.item_pie(data.pie.item);
|
||||
|
|
@ -13,11 +15,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts','echarts-th
|
|||
Controller.echarts.source_pie(data.pie.source);
|
||||
|
||||
});
|
||||
Controller.api.bindevent();
|
||||
Controller.echarts.cancel_order_pie();
|
||||
|
||||
console.log(123);
|
||||
|
||||
},
|
||||
add: function () {
|
||||
Controller.api.bindevent();
|
||||
|
|
@ -33,10 +30,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts','echarts-th
|
|||
echarts: {
|
||||
top: function(data){
|
||||
let map = [
|
||||
'count','performance','worker'
|
||||
'count','performance','total','worker'
|
||||
];
|
||||
$('.myplan-num').each(function(index) {
|
||||
if (index === 1){
|
||||
if (index === 1 || index === 2){
|
||||
$(this).html('¥' + data[map[index]]);
|
||||
}else {
|
||||
$(this).html(data[map[index]]);
|
||||
|
|
@ -44,6 +41,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts','echarts-th
|
|||
}
|
||||
});
|
||||
},
|
||||
order: function(data){
|
||||
let map = [
|
||||
'abnormal','check','auditing','check','review','invoice'
|
||||
];
|
||||
$('.todo-plan-num').each(function(index) {
|
||||
$(this).html(data[map[index]]);
|
||||
});
|
||||
},
|
||||
item_pie: function(data){
|
||||
// 基本的饼图配置
|
||||
var myChart = echarts.init(document.getElementById('item_pie'));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user