Browse Source

登录样式修改,审核修改

moshaorui 1 month ago
parent
commit
2345bd358a

+ 4 - 3
app/Admin/Actions/Grid/ProductAudit.php

@@ -13,21 +13,22 @@ class ProductAudit extends RowAction
 
     public function title()
     {
-        return '<i class="feather icon-check-square"></i> '. admin_trans_label('audit');
+        return  admin_trans_label('product_audit');
     }
 
 
     public function render()
     {
-        $form = ProductAuditForm::make()->payload(['id' => $this->getKey()]);
+        $form = ProductAuditForm::make()->payload(['id' => $this->getKey(),'review_reply'=>$this->row->review_reply]);
         // 实例化表单类
         return Modal::make()
             ->lg()
             ->title($this->title)
             ->body($form)
-            // 因为此处使用了表单异步加载功能,所以一定要用 onLoad 方法
             ->button($this->title());
     }
 
 
+
+
 }

+ 25 - 7
app/Admin/Controllers/DistProductAuditController.php

@@ -9,6 +9,7 @@ use App\Admin\Repositories\DistAppearance;
 use App\Admin\Repositories\DistProduct;
 use App\Admin\Repositories\DistProductCategory;
 use App\Libraries\CommonHelper;
+use Dcat\Admin\Admin;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Http\Controllers\AdminController;
@@ -43,7 +44,6 @@ class DistProductAuditController extends AdminController
      */
     protected function grid()
     {
-
         return Grid::make(DistProduct::with(['distProductCategory','images']), function (Grid $grid)  {
             //默认分页条数
             $grid->paginate(config('admin.per_page'));
@@ -67,11 +67,16 @@ class DistProductAuditController extends AdminController
             });
 
             $grid->column('status')->using(admin_trans_array(config('dictionary.dist_product_status')))->label([
-                -1 => 'warning',
-                0 => 'default',
-                1 => 'blue',
+                -1 => 'danger',
+                0 => 'gray',
+                1 => 'orange1',
                 2 => 'success',
-            ]);
+            ])->display(function($status) {
+                if ($this->status == -1) {
+                    return '<span  class="status-popover" data-container="body" data-toggle="popover" data-placement="top" data-content="'.$this->review_reply.'">'.$status.'</span>';
+                }
+                return $status;
+            });
             $grid->column('created_at')->sortable();
             //$grid->column('updated_at')->sortable();
             // 筛选
@@ -87,13 +92,16 @@ class DistProductAuditController extends AdminController
             $grid->model()->orderBy('created_at', 'desc')->orderBy('id', 'desc');
             //操作
             $grid->actions(function (Grid\Displayers\Actions $actions) {
-                $actions->append(new ProductAudit());
+                if ($this->status == 1) {
+                    $actions->append(new ProductAudit());
+                }
             });
             //按钮
             //$grid->disableViewButton();
             $grid->disableDeleteButton();
             $grid->disableEditButton();
             $grid->disableBatchDelete();
+            $this->addGridJS();
         });
     }
 
@@ -149,5 +157,15 @@ class DistProductAuditController extends AdminController
         });
     }
 
-
+    private function addGridJS()
+    {
+        Admin::script(
+            <<<JS
+ $('.status-popover').popover({
+    container: 'body',
+     trigger: 'hover'
+  })
+JS
+        );
+    }
 }

+ 12 - 21
app/Admin/Forms/ProductAudit.php

@@ -2,6 +2,7 @@
 
 namespace App\Admin\Forms;
 use App\Admin\Repositories\BaseProductCategory;
+use App\Admin\Repositories\DistProduct;
 use App\Admin\Repositories\RpcAlbum;
 use App\Libraries\CommonHelper;
 use App\Models\BaseProduct;
@@ -12,11 +13,6 @@ class ProductAudit extends Form
 {
 
 
-    public function title()
-    {
-        return 'Copy';
-    }
-
 
     /**
      * Handle the form request.
@@ -28,34 +24,29 @@ class ProductAudit extends Form
     public function handle(array $input)
     {
         $id = $this->payload['id'] ?? null;
-        
+
+        $reviewReply = $input['review_reply'] ?? '';
+        $status = $input['status'] ?? null;
+        if (empty($status) || empty($id)) {
+            return $this->response()->error('参数错误');
+        }
+        DistProduct::auditProduct($id, $status, $reviewReply);
         return $this
             ->response()
-            ->success('导入成功')
+            ->success('审批成功')
             ->refresh();
     }
 
 
-
     /**
      * Build a form here.
      */
     public function form()
     {
+        $review_reply = $this->payload['review_reply'] ?? null;
         // 设置隐藏表单,传递用户id
-        $this->select('category_id', admin_trans_label('category_name'))
-            ->options(BaseProductCategory::selectOptions())
-            ->required();
-        $this->hidden('album_ids')->attribute('id', 'album_ids');
+        $this->radio('status')->options(['2' => admin_trans_label('audit_success'), '-1'=> admin_trans_label('approval_failed')])->default('2');
+        $this->textarea('review_reply')->default($review_reply);
     }
 
-    /**
-     * The data of the form.
-     *
-     * @return array
-     */
-    public function default()
-    {
-        return [];
-    }
 }

+ 13 - 0
app/Admin/Repositories/DistProduct.php

@@ -57,4 +57,17 @@ class DistProduct extends EloquentRepository
     {
         return Model::where('id', $id)->where('dist_id', getDistributorId())->first();
     }
+
+    /*
+     * 审核产品
+     */
+    public static function auditProduct($id , $status , $reviewReply) {
+        $product = Model::find($id);
+        if ($product) {
+            $product->status = $status;
+            $product->review_reply = $reviewReply;
+            $product->save();
+        }
+        return true;
+    }
 }

+ 21 - 4
app/Distributor/Controllers/DistProductController.php

@@ -68,11 +68,16 @@ class DistProductController extends AdminDistController
             $grid->column('order')->sortable();
             $grid->column('enabled')->switch();
             $grid->column('status')->using(admin_trans_array(config('dictionary.dist_product_status')))->label([
-                -1 => 'warning',
-                0 => 'default',
-                1 => 'blue',
+                -1 => 'danger',
+                0 => 'gray',
+                1 => 'orange1',
                 2 => 'success',
-            ]);
+            ])->display(function($status) {
+                if ($this->status == -1) {
+                    return '<span  class="status-popover" data-container="body" data-toggle="popover" data-placement="top" data-content="'.$this->review_reply.'">'.$status.'</span>';
+                }
+                return $status;
+            });
             $grid->column('created_at')->sortable();
             //$grid->column('updated_at')->sortable();
             // 筛选
@@ -93,6 +98,7 @@ class DistProductController extends AdminDistController
             //按钮
             //$grid->disableCreateButton();
             $grid->disableViewButton();
+            $this->addGridJS();
         });
 
     }
@@ -301,6 +307,17 @@ JS
     // 提交表单
     $(this).closest('form').trigger('submit');
   });
+JS
+        );
+    }
+    private function addGridJS()
+    {
+        Admin::script(
+<<<JS
+ $('.status-popover').popover({
+    container: 'body',
+     trigger: 'hover'
+  })
 JS
         );
     }

+ 3 - 1
lang/en/global.php

@@ -105,6 +105,7 @@ return [
         'pdf_title'             => 'PDF Title',
         'pdf_src'               => 'PDF Src',
         'video_src'             => 'Video Src',
+        'review_reply'          => 'Review Reply',
     ],
     'labels' => [
         'list'                  => 'List',
@@ -204,7 +205,8 @@ return [
         'album_folder'          => 'Album Folder',
         'approval_failed'       => 'Approval Failed',
         'pending_approval'      => 'Pending Approval',
-        'audit'                 => 'Audit',
+        'product_audit'         => 'Product Audit',
+        'audit_success'         => 'Audit Success',
     ],
     'options' => [
         //

+ 4 - 4
lang/zh_CN/global.php

@@ -111,8 +111,7 @@ return [
         'pdf_title'             => 'PDF标题',
         'pdf_src'               => 'PDF文件',
         'video_src'             => '视频文件',
-
-
+        'review_reply'          => '回复',
     ],
     'labels' => [
         'list'         => '列表',
@@ -213,8 +212,9 @@ return [
         'album_folder'          => '相册分类',
         'approval_failed'       => '审批失败',
         'pending_approval'      => '待审批',
-        'distributor_name'    => "分销商名称",
-        'audit' => '审核',
+        'distributor_name'    => '分销商名称',
+        'product_audit' => '产品审核',
+        'audit_success' => '审核成功',
     ],
     'options' => [
         //

+ 51 - 37
resources/views/admin/pages/login.blade.php

@@ -12,6 +12,7 @@
     .login-btn {
         padding-left: 2rem!important;;
         padding-right: 1.5rem!important;
+        width: 100%;
     }
     .content {
         overflow-x: hidden;
@@ -19,6 +20,18 @@
     .form-group .control-label {
         text-align: left;
     }
+    .justify-content-between {
+        margin-top: 1rem;
+    }
+    #captcha {
+        width: 185px;
+        float: left;
+    }
+    .captcha-img {
+        float: right;
+        width: 110px;
+        height: 34px;
+    }
 </style>
 
 <div class="login-page bg-40">
@@ -28,7 +41,7 @@
         </div>
         <div class="card">
             <div class="card-body login-card-body shadow-100">
-{{--                <p class="login-box-msg mt-1 mb-1">{{ __('admin.welcome_back') }}</p>--}}
+                {{--                <p class="login-box-msg mt-1 mb-1">{{ __('admin.welcome_back') }}</p>--}}
 
                 <form id="login-form" method="POST" action="{{ admin_url('auth/login') }}">
 
@@ -36,13 +49,13 @@
 
                     <fieldset class="form-label-group form-group position-relative has-icon-left">
                         <input
-                                type="text"
-                                class="form-control {{ $errors->has('username') ? 'is-invalid' : '' }}"
-                                name="username"
-                                placeholder="{{ trans('admin.username') }}"
-                                value="{{ old('username') }}"
-                                required
-                                autofocus
+                            type="text"
+                            class="form-control {{ $errors->has('username') ? 'is-invalid' : '' }}"
+                            name="username"
+                            placeholder="{{ trans('admin.username') }}"
+                            value="{{ old('username') }}"
+                            required
+                            autofocus
                         >
 
                         <div class="form-control-position">
@@ -63,15 +76,15 @@
 
                     <fieldset class="form-label-group form-group position-relative has-icon-left">
                         <input
-                                minlength="5"
-                                maxlength="20"
-                                id="password"
-                                type="password"
-                                class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}"
-                                name="password"
-                                placeholder="{{ trans('admin.password') }}"
-                                required
-                                autocomplete="current-password"
+                            minlength="5"
+                            maxlength="20"
+                            id="password"
+                            type="password"
+                            class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}"
+                            name="password"
+                            placeholder="{{ trans('admin.password') }}"
+                            required
+                            autocomplete="current-password"
                         >
 
                         <div class="form-control-position">
@@ -100,6 +113,7 @@
                             placeholder="{{ trans('admin.captcha') }}"
                             required
                         >
+                        <img src="/prime-control/captcha?{{ time() }}" alt="captcha" class="captcha-img" onclick="this.src='/prime-control/captcha?'+Math.random()">
 
                         <div class="form-control-position">
                             <i class="feather icon-image"></i>
@@ -114,39 +128,39 @@
                                 @endforeach
                             </span>
                         @endif
-                        <img src="/prime-control/captcha?{{ time() }}" alt="captcha" class="captcha-img" onclick="this.src='/prime-control/captcha?'+Math.random()">
+
                     </fieldset>
 
+                    <button type="submit" class="btn btn-primary float-letf login-btn">
+                        {{ __('admin.login') }}
+                        <i class="feather icon-arrow-right"></i>
+                    </button>
+
                     <div class="form-group d-flex justify-content-between align-items-center">
                         <div class="text-left">
                             @if(config('admin.auth.remember'))
-                            <fieldset class="checkbox">
-                                <div class="vs-checkbox-con vs-checkbox-primary">
-                                    <input id="remember" name="remember"  value="1" type="checkbox" {{ old('remember') ? 'checked' : '' }}>
-                                    <span class="vs-checkbox">
+                                <fieldset class="checkbox">
+                                    <div class="vs-checkbox-con vs-checkbox-primary">
+                                        <input id="remember" name="remember"  value="1" type="checkbox" {{ old('remember') ? 'checked' : '' }}>
+                                        <span class="vs-checkbox">
                                                         <span class="vs-checkbox--check">
                                                           <i class="vs-icon feather icon-check"></i>
                                                         </span>
                                                     </span>
-                                    <span> {{ trans('admin.remember_me') }}</span>
-                                </div>
-                            </fieldset>
+                                        <span> {{ trans('admin.remember_me') }}</span>
+                                    </div>
+                                </fieldset>
                             @endif
                         </div>
                     </div>
+
                     <div class="form-group d-flex justify-content-between align-items-center">
                         <div class="text-left">
                             <a class="lang-item" href="javascript:void(0);" data-lang="en">English</a>
-                           / <a class="lang-item" href="javascript:void(0);" data-lang="zh_CN">中文</a>
+                            / <a class="lang-item" href="javascript:void(0);" data-lang="zh_CN">中文</a>
                         </div>
                     </div>
 
-                    <button type="submit" class="btn btn-primary float-right login-btn">
-
-                        {{ __('admin.login') }}
-                        &nbsp;
-                        <i class="feather icon-arrow-right"></i>
-                    </button>
                 </form>
 
             </div>
@@ -155,12 +169,12 @@
 </div>
 
 <script>
-Dcat.ready(function () {
-    // ajax表单提交
-    $('#login-form').form({
-        validate: true,
+    Dcat.ready(function () {
+        // ajax表单提交
+        $('#login-form').form({
+            validate: true,
+        });
     });
-});
 </script>
 <script>
     document.querySelectorAll('.lang-item').forEach(item => {

+ 52 - 39
resources/views/distributor/pages/login.blade.php

@@ -12,6 +12,7 @@
     .login-btn {
         padding-left: 2rem!important;;
         padding-right: 1.5rem!important;
+        width: 100%;
     }
     .content {
         overflow-x: hidden;
@@ -19,6 +20,18 @@
     .form-group .control-label {
         text-align: left;
     }
+    .justify-content-between {
+        margin-top: 1rem;
+    }
+    #captcha {
+        width: 185px;
+        float: left;
+    }
+    .captcha-img {
+        float: right;
+        width: 110px;
+        height: 34px;
+    }
 </style>
 
 <div class="login-page bg-40">
@@ -28,7 +41,7 @@
         </div>
         <div class="card">
             <div class="card-body login-card-body shadow-100">
-{{--                <p class="login-box-msg mt-1 mb-1">{{ __('admin.welcome_back') }}</p>--}}
+                {{--                <p class="login-box-msg mt-1 mb-1">{{ __('admin.welcome_back') }}</p>--}}
 
                 <form id="login-form" method="POST" action="{{ admin_url('auth/login') }}">
 
@@ -36,13 +49,13 @@
 
                     <fieldset class="form-label-group form-group position-relative has-icon-left">
                         <input
-                                type="text"
-                                class="form-control {{ $errors->has('username') ? 'is-invalid' : '' }}"
-                                name="username"
-                                placeholder="{{ trans('admin.username') }}"
-                                value="{{ old('username') }}"
-                                required
-                                autofocus
+                            type="text"
+                            class="form-control {{ $errors->has('username') ? 'is-invalid' : '' }}"
+                            name="username"
+                            placeholder="{{ trans('admin.username') }}"
+                            value="{{ old('username') }}"
+                            required
+                            autofocus
                         >
 
                         <div class="form-control-position">
@@ -63,15 +76,15 @@
 
                     <fieldset class="form-label-group form-group position-relative has-icon-left">
                         <input
-                                minlength="5"
-                                maxlength="20"
-                                id="password"
-                                type="password"
-                                class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}"
-                                name="password"
-                                placeholder="{{ trans('admin.password') }}"
-                                required
-                                autocomplete="current-password"
+                            minlength="5"
+                            maxlength="20"
+                            id="password"
+                            type="password"
+                            class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}"
+                            name="password"
+                            placeholder="{{ trans('admin.password') }}"
+                            required
+                            autocomplete="current-password"
                         >
 
                         <div class="form-control-position">
@@ -89,7 +102,6 @@
                         @endif
 
                     </fieldset>
-
                     <fieldset class="form-label-group form-group position-relative has-icon-left">
                         <input
                             minlength="6"
@@ -101,6 +113,7 @@
                             placeholder="{{ trans('admin.captcha') }}"
                             required
                         >
+                        <img src="/prime-control/captcha?{{ time() }}" alt="captcha" class="captcha-img" onclick="this.src='/prime-control/captcha?'+Math.random()">
 
                         <div class="form-control-position">
                             <i class="feather icon-image"></i>
@@ -115,38 +128,39 @@
                                 @endforeach
                             </span>
                         @endif
-                        <img src="/dist/captcha?{{ time() }}" alt="captcha" class="captcha-img" onclick="this.src='/dist/captcha?'+Math.random()">
+
                     </fieldset>
 
-              <div class="form-group d-flex justify-content-between align-items-center">
+                    <button type="submit" class="btn btn-primary float-letf login-btn">
+                        {{ __('admin.login') }}
+                        <i class="feather icon-arrow-right"></i>
+                    </button>
+
+                    <div class="form-group d-flex justify-content-between align-items-center">
                         <div class="text-left">
                             @if(config('admin.auth.remember'))
-                            <fieldset class="checkbox">
-                                <div class="vs-checkbox-con vs-checkbox-primary">
-                                    <input id="remember" name="remember"  value="1" type="checkbox" {{ old('remember') ? 'checked' : '' }}>
-                                    <span class="vs-checkbox">
+                                <fieldset class="checkbox">
+                                    <div class="vs-checkbox-con vs-checkbox-primary">
+                                        <input id="remember" name="remember"  value="1" type="checkbox" {{ old('remember') ? 'checked' : '' }}>
+                                        <span class="vs-checkbox">
                                                         <span class="vs-checkbox--check">
                                                           <i class="vs-icon feather icon-check"></i>
                                                         </span>
                                                     </span>
-                                    <span> {{ trans('admin.remember_me') }}</span>
-                                </div>
-                            </fieldset>
+                                        <span> {{ trans('admin.remember_me') }}</span>
+                                    </div>
+                                </fieldset>
                             @endif
                         </div>
                     </div>
+
                     <div class="form-group d-flex justify-content-between align-items-center">
                         <div class="text-left">
                             <a class="lang-item" href="javascript:void(0);" data-lang="en">English</a>
                             / <a class="lang-item" href="javascript:void(0);" data-lang="zh_CN">中文</a>
                         </div>
                     </div>
-                    <button type="submit" class="btn btn-primary float-right login-btn">
 
-                        {{ __('admin.login') }}
-                        &nbsp;
-                        <i class="feather icon-arrow-right"></i>
-                    </button>
                 </form>
 
             </div>
@@ -155,14 +169,13 @@
 </div>
 
 <script>
-Dcat.ready(function () {
-    // ajax表单提交
-    $('#login-form').form({
-        validate: true,
+    Dcat.ready(function () {
+        // ajax表单提交
+        $('#login-form').form({
+            validate: true,
+        });
     });
-});
 </script>
-
 <script>
     document.querySelectorAll('.lang-item').forEach(item => {
         item.addEventListener('click', function() {
@@ -172,7 +185,7 @@ Dcat.ready(function () {
     });
 
     function switchLanguage(lang) {
-        fetch(`/dist/language-switch?lang=${encodeURIComponent(lang)}`, {
+        fetch(`/prime-control/language-switch?lang=${encodeURIComponent(lang)}`, {
             method: 'GET'
         })
             .then(response => {