diff --git a/app/Admin/Controllers/AgentController.php b/app/Admin/Controllers/AgentController.php
index 9c8fa148..d3e7be6a 100644
--- a/app/Admin/Controllers/AgentController.php
+++ b/app/Admin/Controllers/AgentController.php
@@ -32,20 +32,15 @@ class AgentController extends AdminController
/** 操作 **/
//新增
- if (Admin::user()->can('dcat.admin.vips.create')) {
+ if (Admin::user()->can('dcat.admin.agent.create')) {
$grid->disableCreateButton(false);
$grid->enableDialogCreate();
}
//修改
- $grid->showQuickEditButton(Admin::user()->can('dcat.admin.vips.edit'));
+ $grid->showQuickEditButton(Admin::user()->can('dcat.admin.agent.edit'));
//删除以及自定义操作
$grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableDelete(Admin::user()->cannot('dcat.admin.vips.destroy'));
- });
-
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel(false);
- $filter->like('name')->width(3);
+ $actions->disableDelete(Admin::user()->cannot('dcat.admin.agent.destroy'));
});
});
}
diff --git a/app/Admin/Controllers/Store/OrderController.php b/app/Admin/Controllers/Store/OrderController.php
index ab31e6f5..0acd26c9 100644
--- a/app/Admin/Controllers/Store/OrderController.php
+++ b/app/Admin/Controllers/Store/OrderController.php
@@ -31,9 +31,18 @@ class OrderController extends AdminController
protected function grid()
{
- $grid = new Grid(Order::with(['user', 'inviter']));
- $grid->model()->whereNotNull('inviter_id')->orderBy('created_at', 'desc');
+ $grid = new Grid(Order::with(['user', 'inviter', 'store']));
+ $user = Admin::user();
+ $canAdmin = $this->canAdmin();
+ if (!$canAdmin) {
+ $stores = $user->stores->pluck('id');
+ $grid->model()->whereIn('store_id', $stores);
+ }
+
+ $grid->model()->whereNotNull('store_id')->orderBy('created_at', 'desc');
+
+ $grid->column('store.title', '门店');
$grid->column('sn')->copyable();
$grid->column('user.phone')->copyable();
$grid->column('inviter.phone')->copyable();
@@ -48,10 +57,11 @@ class OrderController extends AdminController
$grid->column('pay_at');
$grid->column('created_at');
- $grid->showViewButton();
+ $grid->showViewButton($user->can('dcat.admin.store.order.show'));
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
+ $filter->equal('store_id', '门店')->select('api/store')->width(3);
$filter->like('sn')->width(3);
$filter->like('user.phone')->width(3);
$filter->like('inviter.phone')->width(3);
@@ -143,4 +153,9 @@ class OrderController extends AdminController
return $grid;
}
+
+ protected function canAdmin()
+ {
+ return Admin::user()->isRole('administrator');
+ }
}
diff --git a/app/Admin/Controllers/Store/ProductController.php b/app/Admin/Controllers/Store/ProductController.php
index e368fe50..aa370b86 100644
--- a/app/Admin/Controllers/Store/ProductController.php
+++ b/app/Admin/Controllers/Store/ProductController.php
@@ -2,7 +2,7 @@
namespace App\Admin\Controllers\Store;
-use Dcat\Admin\{Form, Grid};
+use Dcat\Admin\{Form, Grid, Admin};
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Models\Administrator;
use App\Models\{ProductCategory, ProductSku};
@@ -14,7 +14,18 @@ class ProductController extends AdminController
public function listByStore()
{
- $list = StoreProductSku::with(['productSku'])->where('store_id', request('q'))->get();
+ $user = Admin::user();
+ $canAdmin = $this->canAdmin();
+
+ $query = StoreProductSku::with(['productSku']);
+ if ($canAdmin) {
+ $query->where('store_id', request('q'));
+ } else {
+ $stores = $user->stores->pluck('id');
+ $query->whereIn('store_id', $stores);
+ }
+
+ $list = $query->get();
$data = [];
foreach($list as $item) {
array_push($data, ['id' => $item->productSku->id, 'text' => $item->productSku->name]);
@@ -24,34 +35,37 @@ class ProductController extends AdminController
protected function grid()
{
- $grid = new Grid(StoreProductSku::with(['store', 'productSku.category']));
+ $grid = new Grid(StoreProductSku::with(['store', 'productSku']));
+ $user = Admin::user();
+ $canAdmin = $this->canAdmin();
+ if (!$canAdmin) {
+ $stores = $user->stores->pluck('id');
+ $grid->model()->whereIn('store_id', $stores);
+ }
$grid->model()->orderBy('id', 'desc');
$grid->column('id', 'ID');
$grid->column('store.title', '店铺');
- $grid->column('productSku.category.name', '分类');
$grid->column('productSku.name', '名称');
+ $grid->column('productSku.specs', '规格')->label();
$grid->column('productSku.cost_price', '成本价')->display(function ($value) {
- return bcdiv($value, 100, 2);;
+ return bcdiv($value, 100, 2);
});
$grid->column('productSku.sell_price', '销售价')->display(function ($value) {
return bcdiv($value, 100, 2);;
});
$grid->column('amount', '库存')->sortable();
- $grid->column('productSku.specs', '规格')->label();
$grid->column('status', '状态')->switch();
$grid->paginate(10);
- $grid->showCreateButton();
+ $grid->showCreateButton($user->can('dcat.admin.store.product.create'));
$grid->enableDialogCreate();
- $grid->showDeleteButton();
- // $grid->showRowSelector();
+ $grid->showDeleteButton($user->can('dcat.admin.store.product.destroy'));
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
- $filter->equal('store_id')->select(Store::pluck('title', 'id'))->width(3);
- $filter->equal('productSku.category_id', '分类')->select(ProductCategory::withDepth()->having('depth', '=', 2)->pluck('name', 'id'))->width(3);
+ $filter->equal('store_id')->select('api/store')->width(3);
$filter->like('productSku.name', '名称')->width(3);
});
return $grid;
@@ -62,7 +76,7 @@ class ProductController extends AdminController
$form = Form::make(StoreProductSku::with(['productSku']));
$form->select('store_id')->options(Store::pluck('title', 'id'));
$form->select('product_sku_id')->options(ProductSku::class)->ajax('api/product-skus');
- $form->switch('status')->default(1);
+ $form->switch('status', '状态')->default(1);
$form->saving(function (Form $form) {
if ($form->isCreating()) {
$store_id = $form->input('store_id');
@@ -74,4 +88,9 @@ class ProductController extends AdminController
});
return $form;
}
+
+ protected function canAdmin()
+ {
+ return Admin::user()->isRole('administrator');
+ }
}
diff --git a/app/Admin/Controllers/Store/StockController.php b/app/Admin/Controllers/Store/StockController.php
index 978d778f..a30adca7 100644
--- a/app/Admin/Controllers/Store/StockController.php
+++ b/app/Admin/Controllers/Store/StockController.php
@@ -3,7 +3,7 @@
namespace App\Admin\Controllers\Store;
use App\Models\Store\{Store, StockLog, ProductSku};
-use Dcat\Admin\{Form, Grid, Admin};
+use Dcat\Admin\{Form, Grid, Admin, Show};
use Dcat\Admin\Http\Controllers\AdminController;
class StockController extends AdminController
@@ -13,6 +13,13 @@ class StockController extends AdminController
{
$grid = new Grid(StockLog::with(['store', 'productSku', 'tag']));
+ $user = Admin::user();
+ $canAdmin = $this->canAdmin();
+ if (!$canAdmin) {
+ $stores = $user->stores->pluck('id');
+ $grid->model()->whereIn('store_id', $stores);
+ }
+
$grid->model()->orderBy('created_at', 'desc');
$grid->column('store.title', '门店');
@@ -34,10 +41,11 @@ class StockController extends AdminController
$grid->column('remarks', '备注');
$grid->column('created_at', '操作时间');
- $grid->disableActions();
- $grid->showCreateButton();
+ $grid->showCreateButton($user->can('dcat.admin.store.stock.create'));
$grid->enableDialogCreate();
+ $grid->showViewButton($user->can('dcat.admin.store.stock.show'));
+
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->equal('store_id')->select(Store::pluck('title', 'id'))->width(3);
@@ -50,7 +58,7 @@ class StockController extends AdminController
{
$form = Form::make(new StockLog());
$form->select('tag_id')->options(StockLog::tags()->pluck('name', 'id'))->required();
- $form->select('store_id')->options(Store::pluck('title', 'id'))->required()->load('product_sku_id', 'store/product-by-store');
+ $form->select('store_id')->options(Store::pluck('title', 'id'))->required()->load('product_sku_id', 'api/product-by-store');
$form->select('product_sku_id')->required();
$form->number('amount')->help('正数为增加, 负数为减少')->default(0)->required();
$form->text('remarks');
@@ -89,4 +97,41 @@ class StockController extends AdminController
});
return $form;
}
+
+ protected function detail($id)
+ {
+ $show = Show::make($id, StockLog::with(['store', 'productSku', 'tag']));
+ $show->field('store.title', '门店');
+ $show->field('product_sku.name', '商品');
+ $show->field('product_sku.specs', '商品规格')->label();
+ $show->field('tag.name', '类目');
+ $show->field('amount')->as(function ($value) {
+ return ''.$value.'';
+ })->escape(false);
+ $show->field('balance');
+ $show->field('operator', '操作人')->as(function () {
+ $v = $this->operator;
+ if ($v instanceof \App\Models\Admin\Administrator) {
+ return $v->name . '管理员';
+ } else if ($v instanceof \App\Models\User) {
+ return $v->phone . '员工';
+ }
+
+ return '未知身份';
+ })->escape(false);
+ $show->field('remarks', '备注');
+ $show->field('created_at', '操作时间');
+
+ $show->panel()->tools(function ($tools) {
+ $tools->disableEdit();
+ $tools->disableDelete();
+ });
+
+ return $show;
+ }
+
+ protected function canAdmin()
+ {
+ return Admin::user()->isRole('administrator');
+ }
}
diff --git a/app/Admin/Controllers/Store/StoreController.php b/app/Admin/Controllers/Store/StoreController.php
index c314d41b..a1e3cf19 100644
--- a/app/Admin/Controllers/Store/StoreController.php
+++ b/app/Admin/Controllers/Store/StoreController.php
@@ -3,12 +3,9 @@
namespace App\Admin\Controllers\Store;
use App\Models\Store\{Store, ProductSku, Administrator as StoreAdministrator, StockLog};
-use Dcat\Admin\Form;
-use Dcat\Admin\Grid;
-use Dcat\Admin\Show;
+use Dcat\Admin\{Form, Grid, Show, Admin};
use Dcat\Admin\Http\Controllers\AdminController;
use Carbon\Carbon;
-use Dcat\Admin\Admin;
use Illuminate\Support\Facades\DB;
use App\Models\Admin\Administrator;
use Dcat\Admin\Layout\Row;
@@ -22,38 +19,57 @@ class StoreController extends AdminController
return $content->title('总览');
}
- protected function grid()
+ public function list()
{
- $query = Store::query();
+ $q = request('q');
+ $query = Store::where('title', 'like', '%'.$q.'%');
+
$user = Admin::user();
$canAdmin = $this->canAdmin();
if (!$canAdmin) {
- $ids = DB::table('store_admin_users')->where('administrator_id', $user->id)->pluck('store_id');
- $query = $query->whereIn('id', $ids);
+ $stores = $user->stores;
+ $query->whereIn('id', $stores->pluck('id'));
}
- return Grid::make($query, function (Grid $grid) use ($canAdmin) {
-
- $grid->model()->sort();
+ return $query->select(['id', 'title as text'])->get();
+ }
- $grid->column('id');
- $grid->column('title');
- $grid->column('image')->image('', 100, 100);
- $grid->column('status')->switch();
- $grid->column('sort')->editable();
- $grid->column('created_at');
-
- $grid->disableCreateButton(!$canAdmin);
- $grid->enableDialogCreate();
- $grid->showViewButton();
- $grid->showQuickEditButton();
- $grid->showDeleteButton($canAdmin);
+ protected function grid()
+ {
+ $grid = Grid::make(new Store());
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel();
- $filter->like('title')->width(3);
- });
+ $user = Admin::user();
+ $canAdmin = $this->canAdmin();
+ if (!$canAdmin) {
+ $stores = $user->stores;
+ $grid->model()->whereIn('id', $stores->pluck('id'));
+ }
+
+ $grid->model()->sort();
+
+ $grid->column('id');
+ $grid->column('title');
+ $grid->column('image')->image('', 100, 100);
+ $grid->column('status')->switch();
+ $grid->column('sort')->editable();
+ $grid->column('created_at');
+
+ $grid->disableCreateButton(!$canAdmin);
+ $grid->enableDialogCreate();
+
+ $grid->showViewButton($user->can('dcat.admin.store.list.show'));
+
+ $grid->showQuickEditButton($user->can('dcat.admin.store.list.edit'));
+
+ $grid->showDeleteButton($canAdmin);
+
+ $grid->filter(function (Grid\Filter $filter) {
+ $filter->panel();
+ $filter->like('title')->width(3);
});
+
+ return $grid;
+
}
/**
@@ -65,6 +81,10 @@ class StoreController extends AdminController
*/
protected function detail($id)
{
+ if (!$this->canAdmin()) {
+ $user = Admin::user();
+ $user->stores()->findOrFail($id);
+ }
$show = Show::make($id, new Store(), function (Show $show) {
$show->field('id');
@@ -76,18 +96,6 @@ class StoreController extends AdminController
$show->field('created_at');
});
return $show;
- // $row = new Row();
- // $row->column(5, $show);
-
- // $tab = Tab::make()->withCard();
- // $tab->add('商品', Card::make($this->gridProduct($id)));
- // $tab->add('库存', Card::make($this->gridStock($id)));
- // if ($canAdmin) {
- // $tab->add('管理员', Card::make($this->gridAdmin($id)));
- // }
-
- // $row->column(7, $tab);
- // return $row;
}
/**
diff --git a/app/Admin/Controllers/UserVipController.php b/app/Admin/Controllers/UserVipController.php
index a53c8aae..02df5f92 100644
--- a/app/Admin/Controllers/UserVipController.php
+++ b/app/Admin/Controllers/UserVipController.php
@@ -49,14 +49,16 @@ class UserVipController extends AdminController
*/
protected function detail($id)
{
- return Show::make($id, UserVip::with(['user', 'vip', 'pay']), function (Show $show) {
+ return Show::make($id, UserVip::with(['user', 'pay']), function (Show $show) {
$show->field('id');
$show->field('user.phone', '用户');
- $show->field('vip.name', '会员卡');
+ $show->field('name', '会员卡');
$show->field('times')->as(function ($v) {
return data_get($v, 'text');
});
$show->field('success_time');
+ $show->field('expired');
+ $show->field('gift', '赠品')->view('admin.vip.gift');
$show->field('pay.pay_sn', '订单号');
$show->field('pay.pay_way', '支付方式')->as(function ($value) {
diff --git a/app/Admin/Controllers/VipController.php b/app/Admin/Controllers/VipController.php
index d119461a..1a32fabd 100644
--- a/app/Admin/Controllers/VipController.php
+++ b/app/Admin/Controllers/VipController.php
@@ -32,17 +32,12 @@ class VipController extends AdminController
$grid->disableViewButton(false);
//新增
- $grid->showCreateButton(Admin::user()->can('dcat.admin.vips.create'));
+ $grid->showCreateButton(Admin::user()->can('dcat.admin.vip.create'));
//修改
- $grid->showEditButton(Admin::user()->can('dcat.admin.vips.edit'));
+ $grid->showEditButton(Admin::user()->can('dcat.admin.vip.edit'));
//删除以及自定义操作
$grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableDelete(Admin::user()->cannot('dcat.admin.vips.destroy'));
- });
-
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel(false);
- $filter->like('name')->width(3);
+ $actions->disableDelete(Admin::user()->cannot('dcat.admin.vip.destroy'));
});
});
}
@@ -92,7 +87,7 @@ class VipController extends AdminController
$form->switch('status')->default(1);
$form->textarea('description');
$form->embeds('gift', function ($form) {
- $form->multipleSelect('coupon')->options(Coupon::pluck('name', 'id'));
+ $form->multipleSelect('coupon')->options(Coupon::class)->ajax('api/coupons');
});
});
}
diff --git a/app/Admin/Forms/UserEditAgent.php b/app/Admin/Forms/UserEditAgent.php
index 0b880c46..d44e7b02 100644
--- a/app/Admin/Forms/UserEditAgent.php
+++ b/app/Admin/Forms/UserEditAgent.php
@@ -20,7 +20,7 @@ class UserEditAgent extends Form implements LazyRenderable
*/
protected function authorize($user): bool
{
- return $user->can('dcat.admin.users.edit_vip');
+ return $user->can('dcat.admin.users.agent');
}
/**
diff --git a/app/Admin/Middleware/Permissions.php b/app/Admin/Middleware/Permissions.php
index 18c1466f..357ad4aa 100644
--- a/app/Admin/Middleware/Permissions.php
+++ b/app/Admin/Middleware/Permissions.php
@@ -33,7 +33,7 @@ class Permissions
}
admin_exit(
- Content::make()->withError(trans('admin.deny'))
+ Content::make()->withError(trans('admin.deny') . '----' . $routeName)
);
}
diff --git a/app/Admin/routes.php b/app/Admin/routes.php
index 3c8b7a2d..8a8409d1 100644
--- a/app/Admin/routes.php
+++ b/app/Admin/routes.php
@@ -169,23 +169,23 @@ Route::group([
$router->get('api/order-products', 'OrderController@orderProducts')->name('api.order_products');
$router->get('api/users', 'UserController@users')->name('api.users');
$router->get('api/bargain-activities', 'BargainActivityController@activities')->name('api.bargain_activities');
+ $router->get('api/product-by-store', 'Store\ProductController@listByStore')->name('api.store_product');
+ $router->get('api/store', 'Store\StoreController@list')->name('api.store');
/** 调试接口 **/
// $router->get('test', 'HomeController@test');
- $router->get('store/product-by-store', 'Store\ProductController@listByStore');
- $router->get('store/info', 'Store\StoreController@info');
- $router->resource('store/list', 'Store\StoreController');
- $router->resource('store/product', 'Store\ProductController');
- $router->resource('store/stock', 'Store\StockController');
- $router->resource('store/order', 'Store\OrderController')->only(['index', 'show']);
- $router->resource('store/user', 'Store\UserController');
- // $router->resource('store/{store_id}/admin', 'Store\AdministratorController');
+ $router->get('store/info', 'Store\StoreController@info')->name('store.info');
+ $router->resource('store/list', 'Store\StoreController')->names('store');
+ $router->resource('store/product', 'Store\ProductController')->names('store.product');
+ $router->resource('store/user', 'Store\UserController')->only(['index'])->names('store.user');
+ $router->resource('store/order', 'Store\OrderController')->only(['index', 'show'])->names('store.order');
+ $router->resource('store/stock', 'Store\StockController')->only(['index', 'create', 'store', 'show'])->names('store.stock');
$router->resource('profit', 'OrderProfitController');
- $router->resource('agent', 'AgentController');
+ $router->resource('agent', 'AgentController')->names('agent');
- $router->resource('user-vip', 'UserVipController')->only(['index', 'show']);
- $router->resource('vip', 'VipController');
+ $router->resource('user-vip', 'UserVipController')->only(['index', 'show'])->names('user_vip');
+ $router->resource('vip', 'VipController')->names('vip');
});
diff --git a/app/Models/Admin/Administrator.php b/app/Models/Admin/Administrator.php
index b9f05894..796c1929 100644
--- a/app/Models/Admin/Administrator.php
+++ b/app/Models/Admin/Administrator.php
@@ -74,4 +74,9 @@ class Administrator extends DcatAdministrator
}
return $reduced <= ($this->orderReduceRange->max*100);
}
+
+ public function stores()
+ {
+ return $this->belongsToMany(\App\Models\Store\Store::class, 'store_administrators', 'administrator_id', 'store_id');
+ }
}
diff --git a/database/migrations/2021_12_03_135905_create_vips_table.php b/database/migrations/2021_12_03_135905_create_vips_table.php
index 6a9b1fe9..aa15e11c 100644
--- a/database/migrations/2021_12_03_135905_create_vips_table.php
+++ b/database/migrations/2021_12_03_135905_create_vips_table.php
@@ -34,6 +34,7 @@ class CreateVipsTable extends Migration
$table->text('gift')->nullable()->comment('赠品');
$table->tinyInteger('status')->default(0)->comment('状态(0: 待支付, 1: 支付成功)');
$table->timestamp('success_time')->nullable()->comment('购买时间');
+ $table->timestamp('expired')->nullable()->comment('购买后的会员有效期');
$table->timestamps();
});
}
diff --git a/database/migrations/2022_05_20_131910_add_exipired_to_user_vips.php b/database/migrations/2022_05_20_131910_add_exipired_to_user_vips.php
deleted file mode 100644
index 6cbf763f..00000000
--- a/database/migrations/2022_05_20_131910_add_exipired_to_user_vips.php
+++ /dev/null
@@ -1,32 +0,0 @@
-timestamp('expired')->nullable()->comment('购买后的会员有效期');
- });
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::table('user_vips', function (Blueprint $table) {
- $table->dropColumn(['expired']);
- });
- }
-}
diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php
index 78bbd0e8..2dd26ff0 100644
--- a/database/seeders/AdminPermissionSeeder.php
+++ b/database/seeders/AdminPermissionSeeder.php
@@ -62,6 +62,8 @@ class AdminPermissionSeeder extends Seeder
'api.orders'=>['name'=>'订单'],
'api.order_products'=>['name'=>'订单商品'],
'api.users'=>['name'=>'用户'],
+ 'api.store_product' => ['name' => '查询店铺商品'],
+ 'api.store' => ['name' => '查询店铺'],
],
],
'home'=>[
@@ -74,7 +76,7 @@ class AdminPermissionSeeder extends Seeder
],
],
'users'=>[
- 'name'=>'会员管理',
+ 'name'=>'用户管理',
'curd'=>['index', 'show', 'create', 'store', 'destroy'],
'children'=>[
'disable' =>['name'=>'禁用'],
@@ -87,6 +89,18 @@ class AdminPermissionSeeder extends Seeder
'agent'=>['name'=>'设置代理'],
],
],
+ 'agent' => [
+ 'name' => '代理等级设置',
+ 'curd' => ['index', 'show', 'create', 'store', 'destroy'],
+ ],
+ 'vip' => [
+ 'name' => '会员卡管理',
+ 'curd' => ['index', 'show', 'create', 'store', 'destroy'],
+ ],
+ 'user_vip' => [
+ 'name' => '会员卡购买记录',
+ 'curd' => ['index', 'show'],
+ ],
'article_categories' =>[
'name'=>'文章分类',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
@@ -307,12 +321,15 @@ class AdminPermissionSeeder extends Seeder
],
],
'store' => [
- 'name' => '店铺管理',
- 'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
- ],
- 'vip' => [
- 'name' => '代理等级管理',
- 'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
+ 'name' => '门店管理',
+ 'children' => [
+ 'info' => ['name' => '总览'],
+ 'list' => ['name' => '信息管理', 'curd' => true],
+ 'product' => ['name' => '商品管理', 'curd' => true],
+ 'user' => ['name' => '员工业绩', 'curd' => ['index']],
+ 'order' => ['name' => '订单管理', 'curd' => ['index', 'show']],
+ 'stock' => ['name' => '库存管理', 'curd' => ['index', 'create', 'store', 'show']],
+ ],
],
'profit' => [
'name' => '提成管理',
@@ -387,7 +404,7 @@ class AdminPermissionSeeder extends Seeder
}
}
if (count($permission['children']) > 0) {
- $_key = $permission['curd'] ? ($key ? $key.'.'.$slug : $slug) : $key;
+ $_key = (isset($permission['curd']) && $permission['curd']) ? ($key ? $key.'.'.$slug : $slug) : $key;
$this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
}
}
diff --git a/resources/lang/zh_CN/agent.php b/resources/lang/zh_CN/agent.php
index d7bd1f49..9dc2e9d7 100644
--- a/resources/lang/zh_CN/agent.php
+++ b/resources/lang/zh_CN/agent.php
@@ -3,7 +3,7 @@
return [
'labels' => [
'Agent' => '代理等级',
- 'agents' => '代理等级',
+ 'agent' => '代理等级',
],
'fields' => [
'name' => '等级名称',
diff --git a/resources/lang/zh_CN/store-product.php b/resources/lang/zh_CN/store-product.php
index 18bcfa28..fa66c247 100644
--- a/resources/lang/zh_CN/store-product.php
+++ b/resources/lang/zh_CN/store-product.php
@@ -9,6 +9,7 @@ return [
'fields' => [
'store_id' => '门店',
'product_sku_id' => '商品',
+ 'status' => '状态',
],
'options' => [
],