商品分类
parent
74735050a4
commit
7e62970561
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Controllers;
|
||||
|
||||
use App\Admin\Repositories\OfflineProductCategory as OfflineProductCategoryRepository;
|
||||
use Dcat\Admin\Admin;
|
||||
use Dcat\Admin\Form;
|
||||
use Dcat\Admin\Grid;
|
||||
use Dcat\Admin\Grid\Column;
|
||||
use Dcat\Admin\Http\Controllers\AdminController;
|
||||
|
||||
class OfflineProductCategoryController extends AdminController
|
||||
{
|
||||
protected function grid()
|
||||
{
|
||||
return Grid::make(new OfflineProductCategoryRepository(), function (Grid $grid) {
|
||||
$grid->column('id')->sortable();
|
||||
$grid->column('name');
|
||||
$grid->column('enabled')->filter(
|
||||
Grid\Column\Filter\In::make([
|
||||
0 => '否',
|
||||
1 => '是',
|
||||
])
|
||||
)
|
||||
->if(function () {
|
||||
return Admin::user()->can('dcat.admin.offline_product_categories.edit');
|
||||
})
|
||||
->then(function (Column $column) {
|
||||
$column->switch();
|
||||
})
|
||||
->else(function (Column $column) {
|
||||
$column->bool();
|
||||
});
|
||||
$grid->column('sort')->sortable();
|
||||
$grid->column('created_at');
|
||||
|
||||
$grid->model()->orderBy('id', 'desc');
|
||||
|
||||
if (Admin::user()->can('dcat.admin.offline_product_categories.create')) {
|
||||
$grid->disableCreateButton(false);
|
||||
$grid->enableDialogCreate();
|
||||
}
|
||||
|
||||
$grid->actions(function (Grid\Displayers\Actions $actions) {
|
||||
$actions->quickEdit(Admin::user()->can('dcat.admin.offline_product_categories.edit'));
|
||||
$actions->delete(Admin::user()->can('dcat.admin.offline_product_categories.destroy'));
|
||||
});
|
||||
|
||||
$grid->filter(function (Grid\Filter $filter) {
|
||||
$filter->panel();
|
||||
$filter->like('name')->width(3);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
protected function form()
|
||||
{
|
||||
return Form::make(new OfflineProductCategoryRepository(), function (Form $form) {
|
||||
$form->text('name')
|
||||
->rules(['bail', 'required', 'string', 'max:255'])
|
||||
->setLabelClass(['asterisk'])
|
||||
->attribute('required', true);
|
||||
|
||||
$form->switch('enabled')
|
||||
->default(true);
|
||||
|
||||
$form->number('sort')->default(0);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Repositories;
|
||||
|
||||
use App\Models\OfflineProductCategory as Model;
|
||||
use Dcat\Admin\Repositories\EloquentRepository;
|
||||
|
||||
class OfflineProductCategory extends EloquentRepository
|
||||
{
|
||||
protected $eloquentClass = Model::class;
|
||||
}
|
||||
|
|
@ -182,6 +182,10 @@ Route::group([
|
|||
$router->put('draw-activities/{draw_activity}/logs/{log}', 'Draw\DrawLogController@update')->name('draw_activities.log_update');
|
||||
$router->get('draw-activities/{draw_activity}/logs/{log}/edit', 'Draw\DrawLogController@edit')->name('draw_activities.log_edit');
|
||||
|
||||
$router->resource('offline-product-categories', 'OfflineProductCategoryController', [
|
||||
'only' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||||
])->names('offline_product_categories');
|
||||
|
||||
/** 调试接口 **/
|
||||
// $router->get('test', 'HomeController@test');
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Controllers;
|
||||
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Endpoint\Api\Http\Resources\OfflineProductCategoryResource;
|
||||
use App\Models\OfflineProductCategory;
|
||||
|
||||
class OfflineProductCategoryController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$productCategories = OfflineProductCategory::enabled()->latest('sort')->get();
|
||||
|
||||
return OfflineProductCategoryResource::collection($productCategories);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class OfflineProductCategoryResource extends JsonResource
|
||||
{
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -96,6 +96,8 @@ Route::group([
|
|||
Route::get('draw-activities/{draw_activity}', [App\Endpoint\Api\Http\Controllers\DrawActivityController::class, 'show']);
|
||||
Route::get('draw-activities/{draw_activity}/logs', [App\Endpoint\Api\Http\Controllers\DrawLogController::class, 'index']);
|
||||
|
||||
Route::get('offline-product-categories', [App\Endpoint\Api\Http\Controllers\OfflineProductCategoryController::class, 'index']);
|
||||
|
||||
//三方登录聚合
|
||||
Route::group([
|
||||
'prefix' =>'socialite',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class OfflineProductCategory extends Model
|
||||
{
|
||||
use HasFactory, HasDateTimeFormatter;
|
||||
|
||||
protected $attributes = [
|
||||
'enabled' => false,
|
||||
'sort' => 0,
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'enabled' => 'bool',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'name', 'enabled', 'sort',
|
||||
];
|
||||
|
||||
public function scopeEnabled(Builder $builder)
|
||||
{
|
||||
$builder->where('enabled', true);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOfflineProductCategoriesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('offline_product_categories', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name')->comment('名称');
|
||||
$table->boolean('enabled')->default(0)->comment('启用: 0 否, 1 是');
|
||||
$table->integer('sort')->default(0)->comment('排序');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('offline_product_categories');
|
||||
}
|
||||
}
|
||||
|
|
@ -358,6 +358,18 @@ class AdminMenuSeeder extends Seeder
|
|||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'title' =>'线下订单',
|
||||
'icon' => 'fa fa-cubes',
|
||||
'uri' => '',
|
||||
'children' => [
|
||||
[
|
||||
'title' => '商品分类',
|
||||
'icon' => '',
|
||||
'uri' => 'offline-product-categories',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
DB::table('admin_menu')->truncate();
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -376,6 +376,11 @@ class AdminPermissionSeeder extends Seeder
|
|||
'curd' => ['index'],
|
||||
'children' => [],
|
||||
],
|
||||
'offline_product_categories' => [
|
||||
'name' => '线下订单 - 商品分类',
|
||||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||||
'children' => [],
|
||||
],
|
||||
];
|
||||
// try {
|
||||
// DB::begintransaction();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'labels' => [
|
||||
'OfflineProductCategory' => '商品分类',
|
||||
'offline-product-categories' => '商品分类',
|
||||
],
|
||||
'fields' => [
|
||||
'name' => '名称',
|
||||
'enabled' => '启用',
|
||||
'sort' => '排序',
|
||||
],
|
||||
'options' => [
|
||||
],
|
||||
];
|
||||
Loading…
Reference in New Issue