From 4648eb4064ef6d9bd1187924e3544f1e28c5523e Mon Sep 17 00:00:00 2001 From: pushuo <229102104@qq.com> Date: Tue, 16 Aug 2022 13:54:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=95=86=E5=93=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/ProductController.php | 14 ++++------- .../views/pages/products/index.blade.php | 23 ++++++++++++------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/beike/Admin/Http/Controllers/ProductController.php b/beike/Admin/Http/Controllers/ProductController.php index c8a9f3a3..bd7687d1 100644 --- a/beike/Admin/Http/Controllers/ProductController.php +++ b/beike/Admin/Http/Controllers/ProductController.php @@ -17,21 +17,16 @@ class ProductController extends Controller public function index(Request $request) { - // $product = ProductRepo::list($request->all()); - $product = ProductRepo::list($request->all()); + $productList = ProductRepo::list($request->all()); + $products = ProductResource::collection($productList)->resource; - // dd($product->getItems()); - // dd(ProductResource::collection($productitem)); - // dd(ProductResource::collection($product)->jsonSerialize()); $data = [ 'categories' => CategoryRepo::flatten(locale()), - 'product' => ProductResource::collection($product), + 'products' => $products, ]; if ($request->expectsJson()) { - return ProductResource::collection($product); - // return json_success('成功', ProductResource::collection($product)); - // return json_success('成功', $product); + return $products; } return view('admin::pages.products.index', $data); @@ -41,6 +36,7 @@ class ProductController extends Controller { $requestData = $request->all(); $requestData['trashed'] = true; + if ($request->expectsJson()) { $products = ProductRepo::list($requestData); return ProductResource::collection($products); diff --git a/resources/beike/admin/views/pages/products/index.blade.php b/resources/beike/admin/views/pages/products/index.blade.php index f925233e..f5834ece 100644 --- a/resources/beike/admin/views/pages/products/index.blade.php +++ b/resources/beike/admin/views/pages/products/index.blade.php @@ -14,7 +14,7 @@
- +
@@ -45,7 +45,7 @@
- +
@@ -135,37 +135,39 @@ new Vue({ el: '#product-app', data: { - product: @json($product), + product: @json($products), filter: { - keyword: bk.getQueryString('keyword'), + name: bk.getQueryString('name'), category_id: bk.getQueryString('category_id'), sku: bk.getQueryString('sku'), active: bk.getQueryString('active'), }, selected: [], - page: bk.getQueryString('page', 1), - perPage: bk.getQueryString('per_page', 20), + page: bk.getQueryString('page', 1) * 1, orderBy: bk.getQueryString('order_by', 'products.id:desc'), }, computed: { url: function() { let filter = {}; - filter.per_page = this.perPage; if (this.orderBy != 'products.id:desc') { filter.order_by = this.orderBy; } + if (this.page > 1) { filter.page = this.page; } + for (key in this.filter) { const value = this.filter[key]; if (value !== '' && value !== null) { filter[key] = value; } } + const query = Object.keys(filter).map(key => key + '=' + filter[key]).join('&'); const url = @json(admin_route('products.index')); + if (query) { return url + '?' + query; } @@ -186,7 +188,7 @@ loadData: function() { window.history.pushState('', '', this.url); $http.get(this.url).then((res) => { - this.product = res.data; + this.product = res; }) }, @@ -195,6 +197,11 @@ this.loadData(); }, + resetSearch() { + Object.keys(this.filter).forEach(key => this.filter[key] = '') + this.loadData(); + }, + deleteProduct: function(index) { const product = this.product.data[index];