Completed Multi Datagrid Component

This commit is contained in:
Devansh 2021-04-25 08:20:07 +00:00
parent 12c94c21ed
commit ac5fd1a36b
7 changed files with 45 additions and 26 deletions

View File

@ -2,12 +2,15 @@
namespace Webkul\Admin\DataGrids;
use Webkul\Ui\DataGrid\DataGrid;
use Illuminate\Support\Facades\DB;
use Webkul\Sales\Models\OrderAddress;
use Webkul\Ui\DataGrid\DataGrid;
use Webkul\Ui\DataGrid\Traits\ProvideDataGridPlus;
class OrderDataGrid extends DataGrid
{
use ProvideDataGridPlus;
protected $index = 'id';
protected $sortOrder = 'desc';
@ -15,15 +18,15 @@ class OrderDataGrid extends DataGrid
public function prepareQueryBuilder()
{
$queryBuilder = DB::table('orders')
->leftJoin('addresses as order_address_shipping', function($leftJoin) {
->leftJoin('addresses as order_address_shipping', function ($leftJoin) {
$leftJoin->on('order_address_shipping.order_id', '=', 'orders.id')
->where('order_address_shipping.address_type', OrderAddress::ADDRESS_TYPE_SHIPPING);
->where('order_address_shipping.address_type', OrderAddress::ADDRESS_TYPE_SHIPPING);
})
->leftJoin('addresses as order_address_billing', function($leftJoin) {
->leftJoin('addresses as order_address_billing', function ($leftJoin) {
$leftJoin->on('order_address_billing.order_id', '=', 'orders.id')
->where('order_address_billing.address_type', OrderAddress::ADDRESS_TYPE_BILLING);
->where('order_address_billing.address_type', OrderAddress::ADDRESS_TYPE_BILLING);
})
->addSelect('orders.id','orders.increment_id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'status')
->addSelect('orders.id', 'orders.increment_id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'status')
->addSelect(DB::raw('CONCAT(' . DB::getTablePrefix() . 'order_address_billing.first_name, " ", ' . DB::getTablePrefix() . 'order_address_billing.last_name) as billed_to'))
->addSelect(DB::raw('CONCAT(' . DB::getTablePrefix() . 'order_address_shipping.first_name, " ", ' . DB::getTablePrefix() . 'order_address_shipping.last_name) as shipped_to'));
@ -92,19 +95,19 @@ class OrderDataGrid extends DataGrid
'filterable' => true,
'wrapper' => function ($value) {
if ($value->status == 'processing') {
return '<span class="badge badge-md badge-success">'. trans('admin::app.sales.orders.order-status-processing') .'</span>';
return '<span class="badge badge-md badge-success">' . trans('admin::app.sales.orders.order-status-processing') . '</span>';
} elseif ($value->status == 'completed') {
return '<span class="badge badge-md badge-success">'. trans('admin::app.sales.orders.order-status-success') .'</span>';
return '<span class="badge badge-md badge-success">' . trans('admin::app.sales.orders.order-status-success') . '</span>';
} elseif ($value->status == "canceled") {
return '<span class="badge badge-md badge-danger">'. trans('admin::app.sales.orders.order-status-canceled') .'</span>';
return '<span class="badge badge-md badge-danger">' . trans('admin::app.sales.orders.order-status-canceled') . '</span>';
} elseif ($value->status == "closed") {
return '<span class="badge badge-md badge-info">'. trans('admin::app.sales.orders.order-status-closed') .'</span>';
return '<span class="badge badge-md badge-info">' . trans('admin::app.sales.orders.order-status-closed') . '</span>';
} elseif ($value->status == "pending") {
return '<span class="badge badge-md badge-warning">'. trans('admin::app.sales.orders.order-status-pending') .'</span>';
return '<span class="badge badge-md badge-warning">' . trans('admin::app.sales.orders.order-status-pending') . '</span>';
} elseif ($value->status == "pending_payment") {
return '<span class="badge badge-md badge-warning">'. trans('admin::app.sales.orders.order-status-pending-payment') .'</span>';
return '<span class="badge badge-md badge-warning">' . trans('admin::app.sales.orders.order-status-pending-payment') . '</span>';
} elseif ($value->status == "fraud") {
return '<span class="badge badge-md badge-danger">'. trans('admin::app.sales.orders.order-status-fraud') . '</span>';
return '<span class="badge badge-md badge-danger">' . trans('admin::app.sales.orders.order-status-fraud') . '</span>';
}
},
]);
@ -137,4 +140,4 @@ class OrderDataGrid extends DataGrid
'icon' => 'icon eye-icon',
]);
}
}
}

View File

@ -3,6 +3,7 @@
namespace Webkul\Admin\Http\Controllers\Sales;
use Illuminate\Support\Facades\Event;
use Webkul\Admin\DataGrids\OrderDataGrid;
use Webkul\Admin\Http\Controllers\Controller;
use Webkul\Sales\Repositories\OrderRepository;
use \Webkul\Sales\Repositories\OrderCommentRepository;
@ -58,6 +59,10 @@ class OrderController extends Controller
*/
public function index()
{
if (request()->ajax()) {
return app(OrderDataGrid::class)->toJson();
}
return view($this->_config['view']);
}

View File

@ -22,8 +22,7 @@
</div>
<div class="page-content">
@inject('orderGrid', 'Webkul\Admin\DataGrids\OrderDataGrid')
{!! $orderGrid->render() !!}
<datagrid-plus src="{{ route('admin.sales.orders.index') }}"></datagrid-plus>
</div>
</div>
@ -37,5 +36,5 @@
@stop
@push('scripts')
@include('admin::export.export', ['gridName' => $orderGrid])
@include('admin::export.export', ['gridName' => app('Webkul\Admin\DataGrids\OrderDataGrid')])
@endpush

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/ui.js": "/js/ui.js?id=eb0a3b5cb55832965c59",
"/js/ui.js": "/js/ui.js?id=928bc19bf654fa8ff6ee",
"/css/ui.css": "/css/ui.css?id=6d93a4a052e38d6aa795"
}

View File

@ -3,7 +3,3 @@
Route::view('/ui-kit', 'ui::partials.ui-kit');
Route::view('/helper-classess', 'ui::partials.helper-classes')->name('ui.helper.classes');
Route::get('test1', function () {
return app('Webkul\Admin\DataGrids\ProductDataGrid')->toJson();
})->name('ui.test1');

View File

@ -1,5 +1,5 @@
<template>
<div v-if="isDataLoaded" :key="dataGridIndex">
<div class="table" v-if="isDataLoaded" :key="dataGridIndex">
<div class="grid-container">
<div class="datagrid-filters">
<div class="filter-left">
@ -685,7 +685,11 @@
<div
class="pagination shop mt-50"
v-if="typeof paginated !== 'undefined' && paginated"
v-if="
typeof paginated !== 'undefined' &&
paginated &&
records.data.length > 0
"
>
<a
v-for="(link, index) in records.links"
@ -712,7 +716,7 @@
<script>
export default {
props: ["csrf", "src"],
props: ["src"],
data: function() {
return {
@ -757,6 +761,8 @@ export default {
},
mounted: function() {
this.getCsrf();
this.hitUrl();
},
@ -1485,6 +1491,16 @@ export default {
} else {
e.preventDefault();
}
},
getCsrf: function() {
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
this.csrf = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
}
}
};