|
@@ -0,0 +1,155 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Admin\Controllers;
|
|
|
+
|
|
|
+use App\Admin\Repositories\DistAdminUser;
|
|
|
+use Dcat\Admin\Form;
|
|
|
+use Dcat\Admin\Grid;
|
|
|
+use Dcat\Admin\Show;
|
|
|
+use Dcat\Admin\Http\Controllers\AdminController;
|
|
|
+use Dcat\Admin\Layout\Content;
|
|
|
+use Dcat\Admin\Admin;
|
|
|
+
|
|
|
+class DistAdminUserController extends AdminController
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * page index
|
|
|
+ */
|
|
|
+ public function index(Content $content)
|
|
|
+ {
|
|
|
+ return $content
|
|
|
+ ->header('Distribution Management')
|
|
|
+ ->description('Distribution Management')
|
|
|
+ ->breadcrumb(['text'=>'list','url'=>''])
|
|
|
+ ->body($this->grid());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Make a grid builder.
|
|
|
+ *
|
|
|
+ * @return Grid
|
|
|
+ */
|
|
|
+ protected function grid()
|
|
|
+ {
|
|
|
+ return Grid::make(new DistAdminUser(), function (Grid $grid) {
|
|
|
+ //指定表格视图,去掉右上角的操作按钮
|
|
|
+ $grid->view('admin.grid.table');
|
|
|
+ //设置列表
|
|
|
+ $grid->column('id')->sortable();
|
|
|
+ $grid->column('username');
|
|
|
+ $grid->column('name','Company Name');
|
|
|
+ $grid->column('language')->using(config('app.languages'));
|
|
|
+ $grid->column('enabled')->switch();
|
|
|
+ $grid->column('created_at');
|
|
|
+ $grid->column('updated_at')->sortable();
|
|
|
+ $grid->filter(function (Grid\Filter $filter) {
|
|
|
+ $filter->equal('username');
|
|
|
+ $filter->equal('name','company name');
|
|
|
+ });
|
|
|
+ //排序
|
|
|
+ $grid->model()->orderBy("id",'desc');
|
|
|
+ //按钮
|
|
|
+ $grid->disableViewButton();
|
|
|
+ $grid->showQuickEditButton();
|
|
|
+ $grid->enableDialogCreate();
|
|
|
+ $grid->disableEditButton();
|
|
|
+ $grid->disableDeleteButton();
|
|
|
+ $grid->disableBatchDelete();
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Make a show builder.
|
|
|
+ *
|
|
|
+ * @param mixed $id
|
|
|
+ *
|
|
|
+ * @return Show
|
|
|
+ */
|
|
|
+ protected function detail($id)
|
|
|
+ {
|
|
|
+ return Show::make($id, DistAdminUser::with(['info']), function (Show $show) {
|
|
|
+ $show->row(function (Show\Row $show) {
|
|
|
+ $show->width(6)->field('id');
|
|
|
+ $show->width(6)->field('username');
|
|
|
+ $show->width(6)->field('info.site_name','Site Name');
|
|
|
+ $show->width(6)->field('name','Company Name');
|
|
|
+ $show->width(6)->field('info.country','Country');
|
|
|
+ $show->width(6)->field('info.contact_number','Contact Number');
|
|
|
+ $show->width(6)->field('info.service_hotline','Service Hotline');
|
|
|
+ $show->width(6)->field('info.whats_app','whatsApp');
|
|
|
+ $show->width(6)->field('info.facebook','Facebook');
|
|
|
+ $show->width(6)->field('info.instagram','Instagram');
|
|
|
+ $show->width(6)->field('info.youtube','Youtube');
|
|
|
+ $show->width(6)->field('info.linkedin','Linkedin');
|
|
|
+ $show->width(6)->field('info.tiktok','Tiktok');
|
|
|
+ $show->width(6)->field('info.second_level_domain','Second Level Domain');
|
|
|
+ $show->width(6)->field('language')->using(config('app.languages'));
|
|
|
+ $show->width(6)->field('enabled')->using(config('dictionary.enabled'));
|
|
|
+ $show->width(6)->field('created_at');
|
|
|
+ $show->width(6)->field('updated_at');
|
|
|
+ $show->width(6)->field('info.remark','Remark');
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Make a form builder.
|
|
|
+ *
|
|
|
+ * @return Form
|
|
|
+ */
|
|
|
+ protected function form()
|
|
|
+ {
|
|
|
+ return Form::make(DistAdminUser::with(['info']), function (Form $form) {
|
|
|
+ $form->display('id');
|
|
|
+ $form->text('username')->required();
|
|
|
+ $form->password('password')->customFormat(function ($v) {
|
|
|
+ return "";
|
|
|
+ });
|
|
|
+ $form->text('name','Company Name')->required();
|
|
|
+ $form->text('info.site_name','Site Name')->required();
|
|
|
+ $form->text('info.second_level_domain','Second Level Domain')->required();
|
|
|
+ $form->select('language')->options(config('app.languages'))->required();
|
|
|
+ $form->switch('enabled')->default(1);
|
|
|
+
|
|
|
+ $form->fieldset('Contact Information', function (Form $form) {
|
|
|
+ $form->text('info.country','Country');
|
|
|
+ $form->text('info.contact_number','Contact Number');
|
|
|
+ $form->text('info.service_hotline','Service Hotline');
|
|
|
+ $form->text('info.whats_app','WhatsApp');
|
|
|
+ $form->text('info.facebook','Facebook');
|
|
|
+ $form->text('info.instagram','Instagram');
|
|
|
+ $form->text('info.youtube','Youtube');
|
|
|
+ $form->text('info.linkedin','Linkedin');
|
|
|
+ $form->text('info.tiktok','Tiktok');
|
|
|
+ $form->textarea('info.remark','Remark');
|
|
|
+ });
|
|
|
+ //保存前回调
|
|
|
+ $form->saving(function (Form $form) {
|
|
|
+ //判断用户名是否重复
|
|
|
+ $count = DistAdminUser::findCountByUsername($form->getKey(), $form->username);
|
|
|
+ if ($count > 0) {
|
|
|
+ return $form->response()->error('Username already exists');
|
|
|
+ }
|
|
|
+ if($form->isCreating() && ($form->password === null || $form->password === '')) {
|
|
|
+ return $form->response()->error('Password cannot be empty');
|
|
|
+ }
|
|
|
+ //密码加密
|
|
|
+ if ($form->password) {
|
|
|
+ $form->password = bcrypt($form->password);
|
|
|
+ } else {
|
|
|
+ $form->deleteInput('password');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //保存后回调
|
|
|
+ $form->saved(function (Form $form, $result) {
|
|
|
+ if ($form->isCreating()) {
|
|
|
+ $newId = $form->getKey();
|
|
|
+ if (! $newId) {
|
|
|
+ return $form->response()->error('Failed to save data');
|
|
|
+ }
|
|
|
+ DistAdminUser::addRoleUser($newId, config('app.dist_role_id'));//分销商角色ID 2
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|