Browse Source

黑名单

Zhouzhendong 5 năm trước cách đây
mục cha
commit
76f27d887a

+ 1 - 1
app/Authority.php

@@ -8,7 +8,7 @@ use App\Traits\ModelTimeFormat;
 class Authority extends Model
 {
     use ModelTimeFormat;
-    protected $fillable = ['name','remark','id_parent','alias_name','type','relevance'];
+    protected $fillable = ['name','remark','id_parent','alias_name','type','relevance','permission'];
     function roles(){
         return $this->belongsToMany('App\Role','authority_role','id_authority','id_role');
     }

+ 2 - 3
app/Http/Controllers/TestController.php

@@ -186,9 +186,8 @@ class TestController extends Controller
         });
     }
     public function test1(){
-        $addtime=7;
-        $str=" and addtime > '".date('Y-m-d H:i:s',strtotime("-".$addtime." day"))."'";
-        dd($str);
+        $rejected=new Rejected();
+        $rejected->fill(["a"=>"b"]);
     }
     public function test2()
     {

+ 8 - 1
app/Providers/AuthServiceProvider.php

@@ -5,6 +5,7 @@ namespace App\Providers;
 use App\Authority;
 use App\User;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
 use Illuminate\Support\Facades\Schema;
@@ -32,13 +33,19 @@ class AuthServiceProvider extends ServiceProvider
         if(!Schema::hasTable('users')){return;}
         Gate::before(function ($user) {
             if ($user->isSuperAdmin()) {
-                return true;
+                Cache::put('isSuperAdmin', true);
+            }else{
+                Cache::put('isSuperAdmin', false);
             }
         });
         if(!Schema::hasTable('authorities')){return;}
         $authorities = Authority::with('roles')->get();
         foreach($authorities as $authority) {
             Gate::define($authority->name, function($user) use ($authority) {
+                if(Cache::get('isSuperAdmin')
+                    && $authority['permission']=='允许'){
+                    return true;
+                }
                 return $user->hasRole($authority->roles);
             });
         }

+ 43 - 0
database/migrations/2020_06_12_093011_change_authorities_table.php

@@ -0,0 +1,43 @@
+<?php
+
+use App\Authority;
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeAuthoritiesTable extends Migration
+{
+
+    protected $authNames=[
+       "退货管理-到付费用"
+    ];
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('authorities',function (Blueprint $table){
+            $table->enum('permission',['允许','禁止'])->after('alias_name')->default('允许')->comment('许可');
+        });
+        foreach ($this->authNames as $name){
+            if(!Authority::where('name',$name)->first())(new Authority(['name'=>$name,'alias_name'=>$name,'permission'=>'禁止']))->save();
+        }
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('authorities',function (Blueprint $table){
+            $table->dropColumn('permission');
+        });
+        foreach ($this->authNames as $name){
+            Authority::where('name',$name)->delete();
+        }
+    }
+}

+ 4 - 1
resources/views/maintenance/authority/index.blade.php

@@ -17,6 +17,7 @@
                         <th>ID</th>
                         <th>权限名</th>
                         <th>上级</th>
+                        <th>许可状态</th>
                         <th>注释</th>
                         <th>类别</th>
                         <th>创建时间</th>
@@ -26,6 +27,7 @@
                         <td class="text-muted">@{{authority.id}}</td>
                         <td>@{{authority.name}}</td>
                         <td></td>
+                        <td>@{{authority.permission}}</td>
                         <td>@{{authority.remark}}</td>
                         <td>@{{authority.type}}</td>
                         <td class="text-muted">@{{authority.created_at}}</td>
@@ -50,7 +52,8 @@
             data:{
                 authorities:[
                     @foreach( $authorities as $authority )
-                    {id:'{{$authority->id}}',name:'{{$authority->alias_name}}',type:'{{$authority->type}}',remark:'{{$authority->remark}}',created_at:'{{$authority->created_at}}'},
+                    {id:'{{$authority->id}}',name:'{{$authority->alias_name}}',type:'{{$authority->type}}',remark:'{{$authority->remark}}',created_at:'{{$authority->created_at}}',
+                        permission:'{{$authority->permission}}'},
                     @endforeach
                 ],
             },

+ 31 - 6
resources/views/maintenance/role/create.blade.php

@@ -27,7 +27,7 @@
                         </div>
                     </div>
                     <div class="form-group row">
-                        <label for="authority" class="col-2 col-form-label text-md-right">权限</label>
+                        <label for="authority" class="col-2 col-form-label text-md-right">允许权限</label>
                         <div class="col-8">
                         <input type="text"  class="form-control tooltipTarget" placeholder="定位权限"
                                @input="seekAuthority($event)" title="输入关键词快速定位下拉列表"></div>
@@ -38,7 +38,7 @@
                             <input name="authority" hidden   v-model="authorities" >
                             <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
                                 <ul class="list-group tooltipTarget" style="width: 100%"  onselectstart="return false;">
-                                    <li  :data-original-title="authority.style ? '双击删除权限' :'双击添加权限'"    v-for="authority in authoritiesAll" :id="authority.name" class="tooltipTarget list-group-item list-group-item-action pt-0 pb-0"
+                                    <li  :data-original-title="authority.style ? '双击删除权限' :'双击添加权限'"    v-for="authority in authoritiesAll" v-if="authority.permission=='允许'" :id="authority.name" class="tooltipTarget list-group-item list-group-item-action pt-0 pb-0"
                                          @dblclick="selectedAuthority(authority)" :class="authority.style ? 'active' :''"><span style="cursor: default;" > @{{ authority.name }}  </span></li>
                                 </ul>
                             </div>
@@ -51,7 +51,32 @@
                         <div class="col-3" v-if="authoritiesList.length>0">
                             <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;text-align: center;">
                                 <ul class="list-group tooltipTarget" style="width: 100%"  onselectstart="return false;">
-                                    <li  title="双击删除权限"    v-for="authority in authoritiesList" class=" list-group-item list-group-item-action pt-0 pb-0"
+                                    <li  title="双击删除权限"    v-for="authority in authoritiesList"  v-if="authority.permission=='允许'" class=" list-group-item list-group-item-action pt-0 pb-0"
+                                         @dblclick="selectedAuthority(authority)"><span style="cursor: default;"> @{{ authority.name }}  </span></li>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group row">
+                        <label for="authority" class="col-2 col-form-label text-md-right">禁止权限</label>
+                        <div class="col-8">
+                            <input type="text"  class="form-control tooltipTarget" placeholder="定位权限"
+                                   @input="seekAuthority($event)" title="输入关键词快速定位下拉列表"></div>
+                    </div>
+                    <div class="form-group row">
+                        <label class="col-2"></label>
+                        <div class="col-5">
+                            <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
+                                <ul class="list-group tooltipTarget" style="width: 100%"  >
+                                    <li  :data-original-title="authority.style ? '双击删除权限' :'双击添加权限'"    v-for="authority in authoritiesAll" v-if="authority.permission=='禁止'" :id="authority.name" class="tooltipTarget list-group-item list-group-item-action pt-0 pb-0"
+                                         @dblclick="selectedAuthority(authority)" :class="authority.style ? 'active' :''"><span style="cursor: default;" > @{{ authority.name }}  </span></li>
+                                </ul>
+                            </div>
+                        </div>
+                        <div class="col-3" v-if="authoritiesList.length>0">
+                            <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;text-align: center;">
+                                <ul class="list-group tooltipTarget" style="width: 100%"  >
+                                    <li  title="双击删除权限"    v-for="authority in authoritiesList" v-if="authority.permission=='禁止'"  class=" list-group-item list-group-item-action pt-0 pb-0"
                                          @dblclick="selectedAuthority(authority)"><span style="cursor: default;"> @{{ authority.name }}  </span></li>
                                 </ul>
                             </div>
@@ -75,7 +100,7 @@
             data:{
                 authoritiesAll:[
                         @foreach( $authoritiesAll as $authority )
-                    {id:'{{$authority->id}}',name:'{{$authority->alias_name}}',style:false},
+                    {id:'{{$authority->id}}',name:'{{$authority->alias_name}}',style:false,permission:'{{$authority->permission}}'},
                     @endforeach
                 ],
                 authorities:[{{old('authority')}}],
@@ -91,7 +116,7 @@
                         authoritiesAll.every(function (authorityAll) {
                             if (authorityAll.id == authorities[i]) {
                                 authorityAll.style = true;
-                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name});
+                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name,'permission':authorityAll.permission});
                                 return false;
                             }
                             return true;
@@ -134,7 +159,7 @@
                         authoritiesAll.every(function (authorityAll) {
                             if (authorityAll.id==e.id){
                                 authorityAll.style=true;
-                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name});
+                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name,'permission':authorityAll.permission});
                                 return false;
                             }
                             return  true;

+ 37 - 6
resources/views/maintenance/role/edit.blade.php

@@ -33,7 +33,7 @@
                         </div>
                     </div>
                     <div class="form-group row">
-                        <label for="authority" class="col-2 col-form-label text-md-right">权限</label>
+                        <label for="authority" class="col-2 col-form-label text-md-right">允许权限</label>
                         <div class="col-8">
                             <input type="text"  class="form-control tooltipTarget" placeholder="定位权限"
                                    @input="seekAuthority($event)" title="输入关键词快速定位下拉列表"></div>
@@ -44,7 +44,7 @@
                             <input name="authority" hidden   v-model="authorities" >
                             <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
                                 <ul class="list-group" style="width: 100%" onselectstart="return false;">
-                                    <li  :data-original-title="authority.style ? '双击删除权限' :'双击添加权限'"    v-for="authority in authoritiesAll" :id="authority.name" class="list-group-item list-group-item-action pt-0 pb-0"
+                                    <li  :data-original-title="authority.style ? '双击删除权限' :'双击添加权限'"    v-for="authority in authoritiesAll" v-if="authority.permission=='允许'" :id="authority.name" class="list-group-item list-group-item-action pt-0 pb-0"
                                          @dblclick="selectedAuthority(authority)" :class="authority.style ? 'active' :''"><span style="cursor: default;" :id="authority.name"> @{{ authority.name }} </span></li>
                                 </ul>
                             </div>
@@ -57,7 +57,38 @@
                         <div class="col-3" v-if="authoritiesList.length>0">
                             <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;text-align: center;">
                                 <ul class="list-group tooltipTarget" style="width: 100%"  onselectstart="return false;">
-                                    <li  title="双击删除权限"    v-for="authority in authoritiesList" class=" list-group-item list-group-item-action pt-0 pb-0"
+                                    <li  title="双击删除权限"    v-for="authority in authoritiesList" v-if="authority.permission=='允许'" class=" list-group-item list-group-item-action pt-0 pb-0"
+                                         @dblclick="selectedAuthority(authority)"><span style="cursor: default;"> @{{ authority.name }}  </span></li>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-group row">
+                        <label for="authority" class="col-2 col-form-label text-md-right">禁止权限</label>
+                        <div class="col-8">
+                            <input type="text"  class="form-control tooltipTarget" placeholder="定位权限"
+                                   @input="seekAuthority($event)" title="输入关键词快速定位下拉列表"></div>
+                    </div>
+                    <div class="form-group row">
+                        <label class="col-2"></label>
+                        <div class="col-5">
+                            <input name="authority" hidden   v-model="authorities" >
+                            <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
+                                <ul class="list-group" style="width: 100%" >
+                                    <li  :data-original-title="authority.style ? '双击删除权限' :'双击添加权限'"    v-for="authority in authoritiesAll" v-if="authority.permission=='禁止'" :id="authority.name" class="list-group-item list-group-item-action pt-0 pb-0"
+                                         @dblclick="selectedAuthority(authority)" :class="authority.style ? 'active' :''"><span style="cursor: default;" :id="authority.name"> @{{ authority.name }} </span></li>
+                                </ul>
+                            </div>
+                            @error('authority')
+                            <span class="invalid-feedback">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                            @enderror
+                        </div>
+                        <div class="col-3" v-if="authoritiesList.length>0">
+                            <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;text-align: center;">
+                                <ul class="list-group tooltipTarget" style="width: 100%"  >
+                                    <li  title="双击删除权限"    v-for="authority in authoritiesList" v-if="authority.permission=='禁止'" class=" list-group-item list-group-item-action pt-0 pb-0"
                                          @dblclick="selectedAuthority(authority)"><span style="cursor: default;"> @{{ authority.name }}  </span></li>
                                 </ul>
                             </div>
@@ -82,7 +113,7 @@
             data:{
                 authoritiesAll:[
                         @foreach( $authoritiesAll as $authority )
-                    {id:'{{$authority->id}}',name:'{{$authority->alias_name}}',style:false},
+                    {id:'{{$authority->id}}',name:'{{$authority->alias_name}}',style:false,permission:'{{$authority->permission}}'},
                     @endforeach
                 ],
                 authorities:[
@@ -106,7 +137,7 @@
                         authoritiesAll.every(function (authorityAll) {
                             if (authorityAll.id == authorities[i]) {
                                 authorityAll.style = true;
-                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name});
+                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name,'permission':authorityAll.permission});
                                 return false;
                             }
                             return true;
@@ -149,7 +180,7 @@
                         authoritiesAll.every(function (authorityAll) {
                             if (authorityAll.id==e.id){
                                 authorityAll.style=true;
-                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name});
+                                authoritiesList.push({'id':authorityAll.id,'name':authorityAll.name,'permission':authorityAll.permission});
                                 return false;
                             }
                             return  true;

+ 1 - 1
resources/views/maintenance/role/index.blade.php

@@ -26,7 +26,7 @@
                         <td>
                             <div style="max-height: 130px;overflow-y: scroll;border: solid 1px #ddd;" v-if="role.authorities.length>0">
                                 <ul class="list-group">
-                                    <li v-for="authority in role.authorities" style="list-style: none">@{{ authority.alias_name }}</li>
+                                    <li v-for="authority in role.authorities" :class="authority.permission=='禁止'?'text-danger':''" style="list-style: none">@{{ authority.alias_name }}</li>
                                 </ul>
                             </div>
                         </td>

+ 2 - 2
resources/views/rejected/index.blade.php

@@ -196,7 +196,7 @@
                         <th>姓名</th>
                         <th>电话</th>
                         <th>原单单号</th>
-                        <th>到付费用</th>
+                        @cannot('退货管理-到付费用')<th>到付费用</th>@endcannot
                         <th>商品总数</th>
                         <th>商品条码</th>
                         <th>商品名称</th>
@@ -243,7 +243,7 @@
                         <td class="text-muted">@{{rejectedBill.sender}}</td>
                         <td class="text-muted">@{{rejectedBill.mobile_sender}}</td>
                         <td>@{{rejectedBill.logistic_number}}</td>
-                        <td class="text-muted">@{{rejectedBill.fee_collected}}</td>
+                        @cannot('退货管理-到付费用')<td class="text-muted">@{{rejectedBill.fee_collected}}</td>@endcannot
                         <td class="text-muted">@{{rejectedBill.goods_amount}}</td>
                         <td colspan="8">
                             <div class="text-center" v-if="rejectedBill.detailFolding && rejectedBill.items.length>1">

+ 18 - 5
resources/views/waybill/index.blade.php

@@ -26,7 +26,6 @@
     </div>
     <div class="container-fluid" style="min-width: 1500px;">
         <div class="d-none" id="list">
-
             <form  method="GET" action="@if($uriType=='ZF'){{url('waybill/index/ZF')}}@elseif($uriType=='ZX'){{url('waybill/index/ZX')}}@else{{url('waybill/index')}}@endif" id="optionSubmit">
                 <table class="table table-sm table-bordered  text-nowrap mb-0" style="background: #fff;">
                     <tr v-if="isBeingFilterConditions">
@@ -48,12 +47,21 @@
                     </tr>
                     <tr >
                         <td >
+                            <div class="form-inline">
                             <select name="owner_id"  v-model="filterData.owner_id"  class="form-control form-control-sm tooltipTarget "  @change="setOwner" style="vertical-align: middle;max-width: 100px" :class="filterData.owner_id?'bg-warning':''">
                                 <option value="" class="text-secondary">货主 </option>
-                                @foreach($owners as $owner)
-                                    <option value="{{$owner->id}}" class="font-weight-bold">{{$owner->name}}</option>
-                                @endforeach
-                            </select></td>
+                                <option v-for="owner in owners" :value="owner.id" class="font-weight-bold">@{{owner.name}}</option>
+                            </select>
+                            <div style="position: relative;">
+                                <button type="button" style=" max-width: 100px" class="btn btn-sm btn-outline-dark container pull-left">多货主查询</button>
+                                <span hidden class="border" style="position: absolute;left:0px;top:30px;width:80px;max-width:100px;background-color: white">
+                                    <ul style="list-style-type:none" class="pl-0">
+                                        <li v-for="owner in owners" style="cursor: pointer;user-select:none" class="text-left">@{{owner.name}}<hr style="width: 100%"></li>
+                                    </ul>
+                                </span>
+                            </div>
+                            </div>
+                        </td>
                         <td >
                             <select name="carrier_id"   v-model="filterData.carrier_id" class="form-control form-control-sm  tooltipTarget" @change="setCarrier" style="vertical-align: middle;max-width: 100px" :class="filterData.carrier_id?'bg-warning':''">
                                 <option value="" class="text-secondary">承运商 </option>
@@ -340,6 +348,11 @@
                         ,type:'',status:'',origination:'',destination:'',},
                 wmsCommodities:[],
                 selectedStyle:[],
+                owners:[
+                    @foreach($owners as $owner)
+                    {!! $owner !!},
+                    @endforeach
+                ],
             },
             computed:{
                 isBeingFilterConditions:function(){