商品分类
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->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->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');
|
// $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}', [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('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([
|
Route::group([
|
||||||
'prefix' =>'socialite',
|
'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();
|
DB::table('admin_menu')->truncate();
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -376,6 +376,11 @@ class AdminPermissionSeeder extends Seeder
|
||||||
'curd' => ['index'],
|
'curd' => ['index'],
|
||||||
'children' => [],
|
'children' => [],
|
||||||
],
|
],
|
||||||
|
'offline_product_categories' => [
|
||||||
|
'name' => '线下订单 - 商品分类',
|
||||||
|
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||||||
|
'children' => [],
|
||||||
|
],
|
||||||
];
|
];
|
||||||
// try {
|
// try {
|
||||||
// DB::begintransaction();
|
// DB::begintransaction();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'labels' => [
|
||||||
|
'OfflineProductCategory' => '商品分类',
|
||||||
|
'offline-product-categories' => '商品分类',
|
||||||
|
],
|
||||||
|
'fields' => [
|
||||||
|
'name' => '名称',
|
||||||
|
'enabled' => '启用',
|
||||||
|
'sort' => '排序',
|
||||||
|
],
|
||||||
|
'options' => [
|
||||||
|
],
|
||||||
|
];
|
||||||
Loading…
Reference in New Issue