소스 검색

客户日志

Zhouzhendong 5 년 전
부모
커밋
279959cef0

+ 4 - 1
app/Http/Controllers/CustomerLogController.php

@@ -20,7 +20,10 @@ class CustomerLogController extends Controller
     {
         $id = $request->input("id");
         if (!$id) return ["success"=>false,"data"=>"非法参数"];
-        return ["success"=>true,"data"=>app("CustomerLogService")->update(["id"=>$id],["description"=>$request->input("description")])];
+        $params = [];
+        if ($request->has("description"))$params["description"] = $request->input("description");
+        if ($request->has("customer_log_status_id"))$params["customer_log_status_id"] = $request->input("customer_log_status_id");
+        return ["success"=>true,"data"=>app("CustomerLogService")->update(["id"=>$id],$params)];
     }
 
     public function store(Request $request)

+ 3 - 0
database/migrations/2020_12_14_103401_create_customerlogstatuses_table.php

@@ -14,6 +14,9 @@ class CreateCustomerLogStatusesTable extends Migration
             $table->text('description');
             $table->timestamps();
         });
+		\App\CustomerLogStatus::query()->create([
+		    "name"=>"日志"
+        ]);
 	}
 
 	public function down()

+ 35 - 8
resources/views/customer/customer/index.blade.php

@@ -58,9 +58,9 @@
                             <div class="col-1"><button class="btn btn-sm btn-outline-info" @click="addCustomerLog(i)">添加</button></div>
                             <div class="col-11">
                                 <div class="w-100">
-                                    <div class="text-center mb-0 row" v-for="(log,j) in customer.customer_logs" v-if="j<2">
+                                    <div class="text-center mb-0 row" v-for="(log,j) in customer.customer_logs" v-if="j<2" @click="edit(i,log.user)">
                                         <div @mouseenter="textClass($event,true)" @mouseleave="textClass($event,false)" class="col-4">
-                                            <div class="text-overflow-replace cursor-pointer text-secondary" v-if="log.id && (editCustomer!=customer.id || j!=0)" @click="edit(i,log.user)">
+                                            <div class="text-overflow-replace cursor-pointer text-secondary" v-if="log.id && (editCustomer!=customer.id || j!=0)">
                                                 @{{ log.description }}
                                             </div>
                                             <label v-if="!log.id">
@@ -71,13 +71,18 @@
                                             </label>
                                         </div>
                                         <div class="col-2">
-                                            <span v-if="log.id">@{{ log.status ? log.status.name : '' }}</span>
-                                            <label v-else><select class="form-control form-control-sm" @blur="addLog(i,log)" v-model="log.status">
+                                            <span v-if="log.id && (editCustomer!=customer.id || j!=0)">@{{ log.status ? log.status.name : '' }}</span>
+                                            <label v-if="!log.id"><select class="form-control form-control-sm">
                                                 <option v-for="status in logStatuses" :value="status.id">@{{ status.name }}</option>
                                             </select></label>
+                                            <label v-if="editCustomer == customer.id && j==0">
+                                                <select class="form-control form-control-sm" @change="editLogStatus(i,log)" v-model="log.customer_log_status_id">
+                                                    <option v-for="status in logStatuses" :value="status.id">@{{ status.name }}</option>
+                                                </select>
+                                            </label>
                                         </div>
-                                        <div class="col-2">@{{ log.user ? log.user.name : '' }}</div>
-                                        <div class="col-3">@{{ log.created_at }}</div>
+                                        <div class="col-2 text-secondary">@{{ log.user ? log.user.name : '' }}</div>
+                                        <div class="col-3 text-secondary">@{{ log.created_at }}</div>
                                         @can("客户-编辑")<div class="col-1 font-weight-bold text-danger h4 cursor-pointer" @click="delLog(i,j)">&times;</div>@endcan
                                     </div>
                                 </div>
@@ -85,8 +90,8 @@
                                     <div class="text-center mb-0 row" v-for="(log,j) in customer.customer_logs" v-if="j>1">
                                         <div @mouseenter="textClass($event,true)" @mouseleave="textClass($event,false)" class="col-4"><div class="text-overflow-replace cursor-pointer text-secondary">@{{ log.description }}</div></div>
                                         <div class="col-2">@{{ log.status ? log.status.name : '' }}</div>
-                                        <div class="col-2">@{{ log.user ? log.user.name : '' }}</div>
-                                        <div class="col-3">@{{ log.created_at }}</div>
+                                        <div class="col-2 text-secondary">@{{ log.user ? log.user.name : '' }}</div>
+                                        <div class="col-3 text-secondary">@{{ log.created_at }}</div>
                                         @can("客户-编辑")<div class="col-1 font-weight-bold text-danger h4 cursor-pointer" @click="delLog(i,j)">&times;</div>@endcan
                                     </div>
                                 </div>
@@ -195,11 +200,30 @@
                     window.tempTip.confirm("确定要提交该条日志的修改信息吗?",()=>{
                         window.tempTip.postBasicRequest(url,params,(res)=> {
                             this.customers[customer_index].customer_logs[0].description = description;
+                            this.editCustomer = "";
                             this.$forceUpdate();
                             return "修改说明成功!";
                         });
                     });
                 },
+                editLogStatus(customer_index,log){
+                    let url="{{url('customer/customer/editLog')}}";
+                    let params = {id:log.id,customer_log_status_id:log.customer_log_status_id};
+                    window.tempTip.confirm("确定要提交该条日志的修改信息吗?",()=>{
+                        window.tempTip.postBasicRequest(url,params,(res)=> {
+                            this.customers[customer_index].customer_logs[0].customer_log_status_id = log.customer_log_status_id;
+                            this.logStatuses.some(status=> {
+                                if (status.id === log.customer_log_status_id){
+                                    this.customers[customer_index].customer_logs[0].status = status;
+                                    return true;
+                                }
+                            });
+                            this.editCustomer = "";
+                            this.$forceUpdate();
+                            return "修改状态成功!";
+                        });
+                    });
+                },
                 showLog(index){
                     if(this.customers[index].isShowLog){
                         this.customers[index].isShowLog = false;
@@ -338,6 +362,9 @@
                     if (!user)return;
                     let id = "{{\Illuminate\Support\Facades\Auth::id()}}";
                     if (id != user.id) return;
+                    if (!this.logStatuses)window.tempTip.postBasicRequest("{{url('customer/customer/getLogStatus')}}",{},(res)=>{
+                        this.logStatuses = res;
+                    });
                     this.editCustomer = this.customers[index].id;
                 },
                 addLog(index,log){