ANG YU 5 anni fa
parent
commit
d3b8688f39

+ 1 - 1
app/Http/Controllers/CustomerLogsController.php

@@ -17,7 +17,7 @@ class CustomerLogsController extends Controller
 
     public function index(Request $request)
     {
-        $customer_logs = CustomerLog::query()->with(['customerLogStatus', 'user', 'customer'])->where('id',$request->id) ->orderByDesc('updated_at')->paginate();
+        $customer_logs = CustomerLog::query()->with(['customerLogStatus', 'user', 'customer'])->where('customer_id',$request->id) ->orderByDesc('updated_at')->paginate();
         return view('customer.customer_logs.index', compact('customer_logs'));
     }
 

+ 3 - 1
app/Services/CustomerService.php

@@ -13,7 +13,9 @@ Class CustomerService
 
     public function paginate($paginate = 50)
     {
-        return Customer::query()->orderByDesc('id')->paginate($paginate);
+        return Customer::query()->with(['customerLogs'=>function($query){
+            $query->with(['customerLogStatus', 'user']);
+        }])->orderByDesc('id')->paginate($paginate);
     }
 
     public function create(array $params)

+ 39 - 3
resources/views/customer/customer/index.blade.php

@@ -35,7 +35,28 @@
                     <td>@{{ customer.contact_man }}</td>
                     <td>@{{ customer.phone }}</td>
                     <td>@{{ customer.comment }}</td>
-                    <td><a href="#" @click="gotoLogs(customer.id)">链接</a></td>
+                    <td>
+                        <table v-if="customer.customer_logs.length>0">
+                            <tr v-for="(log,i) in customer.customer_logs" v-if="customer.customer_logs.collapsed || i<2">
+                                <td>@{{ log.customer_log_status.name }}</td>
+                                <td>
+                                    <span v-if="!log.editing" @click="editLogDescription(log,customer.customer_logs,i)">@{{ log.description }}</span>
+                                    <span v-if="log.editing">
+                                        <input type="text" v-model="log.description">
+                                        <button class="btn btn-sm btn-info">ok</button>
+                                    </span>
+                                </td>
+                                <td>@{{ log.user.name }}</td>
+                                <td>@{{ log.created_at }}</td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <span class="link" v-if="!customer.customer_logs.collapsed && customer.customer_logs.length>2" @click="customer.customer_logs.collapsed=true">点击展开</span>
+                                    <span class="link" v-if="customer.customer_logs.collapsed && customer.customer_logs.length>2" @click="customer.customer_logs.collapsed=false">点击收缩</span>
+                                </td>
+                            </tr>
+                        </table>
+                    </td>
                     <td>#</td>
                     <td>@{{ customer.created_at }}</td>
                     <td>
@@ -53,7 +74,8 @@
         new Vue({
             el:"#container",
             data:{
-                customers :  {!!  $customers->toJson() !!}['data']
+                user:{!! auth()->user()??'' !!},
+                customers :  {!!  $customers->toJson() !!}['data'],
             },
             methods:{
                 destroy(id,index,name){
@@ -74,8 +96,22 @@
                         })
                     })
                 },
+                editLogDescription(log,logs,i){
+                    console.log(logs.collapsed&&i>2);
+                    let _this =this;
+                    let isEditable=(function(){
+                        if(log.user.name!==_this.user.name)return false;
+                        return logs.some(function(log_){
+                            if( _this.user.name===log_.user.name){
+                                return log.created_at === log_.created_at;
+                            }
+                        });
+                    })();
+                    if(isEditable)
+                        log.editing=true;
+                },
                 gotoLogs(id){
-                    let url = '{{ url("customer/customer/customer_logs") }}'+'?id='+id;
+                    let url = '{{ url("customer/customer_logs") }}'+'?id='+id;
                     window.open(url);
                 }
             },

+ 1 - 1
resources/views/customer/customer/menu.blade.php

@@ -11,7 +11,7 @@
             </li> @endcan
 
             <li class="nav-item">
-                <a class="nav-link" href="{{url('customer\customer/customer_log_statuses')}}" :class="{active:isActive('customer_log_statuses',3)}">客户状态</a>
+                <a class="nav-link" href="{{url('customer/customer_log_statuses')}}" :class="{active:isActive('customer_log_statuses',3)}">客户状态</a>
             </li>
             {{$slot}}
         </ul>

+ 1 - 1
resources/views/customer/menu.blade.php

@@ -10,7 +10,7 @@
                 <a class="nav-link" href="{{url('customer/finance/instantBill')}}" :class="{active:isActive('finance',2)}">财务</a>
             </li>
             <li class="nav-item">
-                <a class="nav-link" href="{{url('customer/customer')}}" :class="{active:isActive('customer',2)}">客户</a>
+                <a class="nav-link" href="{{url('customer')}}" :class="{active:isActive('customer',2)}">客户</a>
             </li>
             <li class="nav-item">
                 <a class="nav-link" href="{{url('customer/relating')}}" :class="{active:isActive('relating',2)}">相关设置</a>

+ 3 - 5
routes/web.php

@@ -596,13 +596,11 @@ Route::group(['prefix'=>'customer'],function(){
         Route::post('billConfirm','CustomerController@billConfirm');
     });
     Route::get('relating',function (){return view('customer.relating');});
-    Route::group(['prefix' => 'customer'], function () {
-        Route::resource('customer_log_statuses', 'CustomerLogStatusesController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]);
-        Route::resource('customer_logs', 'CustomerLogsController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]);
-    });
-    Route::resource('customer', 'CustomerBaseController');
 
+    Route::resource('customer_log_statuses', 'CustomerLogStatusesController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]);
+    Route::resource('customer_logs', 'CustomerLogsController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]);
 });
+Route::resource('customer', 'CustomerBaseController');
 
 /** 站管理 */
 Route::group(['prefix'=>'station'],function(){