Просмотр исходного кода

货主的绑定切换源由角色到用户

Zhouzhendong 4 лет назад
Родитель
Сommit
95339d91d7

+ 20 - 0
app/Http/Controllers/UserController.php

@@ -6,6 +6,7 @@ use App\Components\AsyncResponse;
 use App\Owner;
 use App\Role;
 use App\Supplier;
+use App\Traits\ModelLogChanging;
 use App\User;
 use App\UserDetail;
 use App\UserWorkgroup;
@@ -279,4 +280,23 @@ class UserController extends Controller
         Cache::pull("USER.{$user->id}.OWNER.ID");
         $this->success();
     }
+
+    /**
+     * 克隆目标用户
+     *
+     * @param Request $request
+     */
+    public function cloneBindOwner(Request $request)
+    {
+        $this->gate("用户-编辑");
+        $name = $request->input("target","");
+        $user = User::query()->where("name",$name)->first();
+        if (!$user)$this->error("目标用户不存在");
+        $owners = app("UserService")->getUserUnderOwnerIdArr($user->id);
+        $user = new User();
+        $user->id = $request->input("id");
+        $user->owners()->sync($owners);
+        Cache::pull("USER.{$user->id}.OWNER.ID");
+        $this->success();
+    }
 }

+ 8 - 1
resources/views/equipment/_detailInfo.blade.php

@@ -25,7 +25,14 @@
             <div class="modal-body row">
                 <div class="col-6" style="border-right: 1px #D3D3D3 solid">
                     <div v-for="layer in flipLayer" style="border: 1px #000000 solid;height: 70px;cursor: pointer" @click="nextDetail(layer)"
-                        :style="[layer===1 ? {borderTop:'none'} : '',layer===current.layer ? {borderBottom:'none'} : '',{width:100*(current.grid)+'px'}]">
+                        :style="[{width:100*(current.grid)+'px'}]">
+<!--                        <table class="table table-bordered w-100 h-100 m-0" v-if="current.children && current.children.length>0">
+                            <tr v-for="row in current.children[layer-1].row">
+                                <td v-for="column in current.children[layer-1].column"
+                                    class="p-0 text-center position-relative">
+                                </td>
+                            </tr>
+                        </table>-->
                         <span class="h-100 w-100 el-center">@{{ layer<10 ? '0'+layer : layer }}</span>
                     </div>
                 </div>

+ 7 - 6
resources/views/maintenance/user/_allocationOwner.blade.php

@@ -13,19 +13,20 @@
                                 <input type="checkbox" class="switch" v-model="switchStatus" @change="changeSwitchStatus()"  id="check-owners">
                             </label>
                         </div>
-                        <label class="ml-0">拥有</label>
+                        <label class="ml-0">拥有</label>
                     </div>
-                    <div class="col-7">
-                        <input class="form-control form-control-sm rounded-pill" placeholder="检索" @keydown.enter="seekOwner($event)">
+                    <div class="col-5">
+                        <input class="form-control form-control-sm rounded-pill" id="seek-owner" placeholder="检索" @keydown.enter="seekOwner($event)">
                     </div>
+                    <button class="col-2 btn btn btn-success ml-1 rounded-pill" @click="cloneTarget()">克隆</button>
                 </div>
                 <div class="card-body overflow-scrollbar-200 p-0">
                     <ul class="list-group">
                         <li class="list-group-item" v-for="owner in owners" v-show="!owner.hide">
-                            <label class="custom-control custom-checkbox" style="user-select:none" :for="'owner'+owner.name">
+                            <div class="custom-control custom-checkbox" style="user-select:none">
                                 <input type="checkbox" class="custom-control-input" v-model="switchOwner" :value="owner.name" :id="'owner'+owner.name">
-                                <label class="custom-control-label ml-0">@{{ owner.value }}</label>
-                            </label>
+                                <label class="custom-control-label ml-0 w-100" :for="'owner'+owner.name">@{{ owner.value }}</label>
+                            </div>
                         </li>
                     </ul>
                 </div>

+ 9 - 3
resources/views/maintenance/user/index.blade.php

@@ -164,7 +164,7 @@
                     if (!user.owners){
                         window.tempTip.postBasicRequest("{{url('maintenance/user/getOwners')}}", {id:user.id},res=>{
                             this.user.owners = res;
-                            this.switchOwner = res;
+                            this.switchOwner = res ? res : [];
                         });
                     }else{
                         this.switchOwner = user.owners;
@@ -176,7 +176,7 @@
                         this._updateOwnerShow(!this.switchStatus);
                     }else{
                         this.owners.forEach(owner=>{
-                            owner.hide = this.isExist(this.user.owners,owner.name) && this.switchStatus;
+                            owner.hide = !(this.isExist(this.user.owners,owner.name) && this.switchStatus);
                         });
                         this.$forceUpdate();
                     }
@@ -191,7 +191,7 @@
                     let val = e.target.value;
                     this.owners.forEach(owner=>{
                         if (owner.value.indexOf(val) > -1){
-                            owner.hide = !((this.switchStatus && !this.isExist(this.user.owners,owner.name)) || !this.switchStatus);
+                            owner.hide = (this.switchStatus && !this.isExist(this.user.owners,owner.name)) || !this.switchStatus;
                         }else{
                             owner.hide = true;
                         }
@@ -209,6 +209,12 @@
                         return val == tar;
                     });
                 },
+                cloneTarget(){
+                    let val = $("#seek-owner").val();
+                    window.tempTip.postBasicRequest("{{url('maintenance/user/cloneBindOwner')}}", {id:this.user.id,target:val},()=>{
+                        return "克隆成功";
+                    },true);
+                },
             }
         });
     </script>

+ 1 - 0
routes/web.php

@@ -357,6 +357,7 @@ Route::group(['middleware' => 'auth'], function ($route) {
             Route::post("saveOwnerGroups", 'UserController@saveOwnerGroups');
             Route::post("getOwners", 'UserController@getOwners');
             Route::post("bindOwner", 'UserController@bindOwner');
+            Route::post("cloneBindOwner", 'UserController@cloneBindOwner');
         });
         /** 项目耗材 */
         Route::group(['prefix' => "ownerMaterial"], function () {