Browse Source

客户管理-表结构更改带来的BUG

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

+ 12 - 7
app/Http/Controllers/PriceModelController.php

@@ -265,14 +265,19 @@ class PriceModelController extends Controller
             "priority" => $request->input("priority"),
             "remark" => $request->input("remark"),
             "feature" => $request->input("feature"),
-            "discount_count"    => request("discount_count"),
+            "discount_count"    => request("discount_count") ? implode(",",request("discount_count")) : null,
             "total_price"       => request("total_price"),
-            "total_discount_price"=> request("total_discount_price") ?? null,
+            "total_discount_price"=> request("total_discount_price") ? implode(",",request("total_discount_price")) : null,
         ]);
         if ($request->input("items")){
             //录入子表
             $insert = [];
             foreach ($request->input("items") as $rule){
+                if ($rule["discount_price"] ?? false){
+                    foreach ($rule["discount_price"] as $index=>$item){
+                        if ($index!=0 && !$item)$rule["discount_price"][$index] = $rule["discount_price"][$index-1];
+                    }
+                }
                 $insert[] = [
                     "owner_price_operation_id" => $ownerPriceOperation->id,
                     "amount" => $rule["amount"],
@@ -281,7 +286,7 @@ class PriceModelController extends Controller
                     "strategy" => $rule["strategy"],
                     "feature" => $rule["feature"],
                     "priority" => $rule["priority"],
-                    "discount_price" => $rule["discount_price"] ?? null,
+                    "discount_price" =>  implode(",",$rule["discount_price"]),
                 ];
             }
             $service->insertItem($insert);
@@ -318,9 +323,9 @@ class PriceModelController extends Controller
             "priority" => $request->input("priority"),
             "remark" => $request->input("remark"),
             "feature" => $request->input("feature"),
-            "discount_count"    => request("discount_count"),
+            "discount_count"    => implode(",",request("discount_count")),
             "total_price"       => request("total_price"),
-            "total_discount_price"=> request("total_discount_price") ?? null,
+            "total_discount_price"=> implode(",",request("total_discount_price")) ?? null,
         ]);
         $service->destroyItem($id);
         if ($request->input("items")){
@@ -335,7 +340,7 @@ class PriceModelController extends Controller
                     "strategy" => $rule["strategy"],
                     "feature" => $rule["feature"],
                     "priority" => $rule["priority"],
-                    "discount_price" => $rule["discount_price"] ?? null,
+                    "discount_price" => implode(",",$rule["discount_price"]) ?? null,
                 ];
             }
             $service->insertItem($insert);
@@ -1105,7 +1110,7 @@ class PriceModelController extends Controller
                     unset($item["type"]);
                 }
                 app("OwnerPriceOperationItemService")->insert($params["items"]);
-                DB::insert(DB::raw("INSERT INTO owner_price_operation_owner VALUES(?,?)"),[$model->id,request("owner_id")]);
+                DB::insert(DB::raw("INSERT INTO owner_price_operation_owner(owner_price_operation_id,owner_id) VALUES(?,?)"),[$model->id,request("owner_id")]);
                 DB::commit();
             });
         }

+ 3 - 3
app/Services/FeatureService.php

@@ -162,10 +162,10 @@ class FeatureService
         if (!$features)return $value;
         preg_match_all('/\d+|[\&\|\(\)]/',$value,$result);
         foreach ($result[0] as &$str){
-            $column = Feature::type[$features[$str]["type"]];
-            $logic = $features[$str]["logic"];
-            $describe = $features[$str]["describe"];
             if (is_numeric($str) && isset($features[$str])){
+                $column = Feature::type[$features[$str]["type"]];
+                $logic = $features[$str]["logic"];
+                $describe = $features[$str]["describe"];
                 if ($columnMapping){
                     $column = $columnMapping[$column] ?? $column;
                     switch ($logic){

+ 1 - 1
resources/views/customer/project/part/_operation.blade.php

@@ -44,7 +44,7 @@
                class="form-control form-control-sm col-6" step="1" type="number" min="0">
     </div>
 </div>
-<div class="row mt-1" v-for="(value,i) in model.operation.discount_count" v-if="model.operation.discount_count.length>1 && i!=0">
+<div class="row mt-1" v-for="(value,i) in model.operation.discount_count" v-if="model.operation.isDiscount && i!=0">
     <label class="col-2"></label><div class="col-2"></div>
     <div class="col-8 row">
         <label class="offset-1 col-3">满减阈值@{{ i+1 }}</label>

+ 4 - 4
resources/views/maintenance/priceModel/operation/create.blade.php

@@ -78,15 +78,15 @@
                 <div class="col-8 row" v-if="model.isDiscount">
                     <div class="col-1 cursor-pointer"><span class="fa fa-plus" @click="addDiscount(model.discount_count)"></span></div>
                     <label class="col-3" for="discount">满减阈值</label>
-                    <input id="discount" v-model="model.discount_count[0]" name="discount_count"
+                    <input id="discount" v-model="model.discount_count[0]" name="discount_count[]" required
                            class="form-control form-control-sm col-6" :class="errors.discount_count ? 'is-invalid' : ''" step="1" type="number" min="0">
                 </div>
             </div>
-            <div class="row mt-1" v-for="(value,i) in model.discount_count" v-if="i!=0">
+            <div class="row mt-1" v-for="(value,i) in model.discount_count" v-if="model.isDiscount && i!=0">
                 <label class="col-2"></label><div class="col-2"></div>
                 <div class="col-8 row">
                     <label class="offset-1 col-3">满减阈值@{{ i+1 }}</label>
-                    <input v-model="model.discount_count[i]" :placeholder="Number(model.discount_count[i-1])+1"
+                    <input v-model="model.discount_count[i]" :placeholder="Number(model.discount_count[i-1])+1" name="discount_count[]" required
                            class="form-control form-control-sm col-6" step="1" type="number" :min="Number(model.discount_count[i-1])+1">
                 </div>
             </div>
@@ -172,7 +172,7 @@
                         </div>
                         <div class="row mt-2" v-if="model.isDiscount" v-for="(value,i) in item.discount_price">
                             <label class="col-2">满减价(@{{ model.discount_count[i] }}单)</label>
-                            <input class="col-5 form-control form-control-sm" v-model="item.discount_price[i]"
+                            <input class="col-5 form-control form-control-sm" v-model="item.discount_price[i]" required
                                 type="number" step="0.001" min="0">
                         </div>
                     </div>

+ 12 - 2
resources/views/maintenance/priceModel/operation/index.blade.php

@@ -32,7 +32,7 @@
             <tr v-for="(model,i) in models" :id="'model-'+model.id">
                 <td>@{{ i+1 }}</td>
                 <td>
-                    <button v-if="thisId != model.id" class="btn btn-sm btn-info text-white" @click="showDetail(model.id,model.operationType)">维护详情</button>
+                    <button v-if="thisId != model.id" class="btn btn-sm btn-info text-white" @click="showDetail(model.id,model.operationType,i)">维护详情</button>
                     <button v-if="thisId == model.id" class="btn btn-sm btn-dark" @click="thisId = ''">关闭详情</button>
                 </td>
                 <td>@{{ model.name }}</td>
@@ -63,6 +63,7 @@
                             <th>起步数</th>
                             <th>单位</th>
                             <th>单价</th>
+                            <th>减免</th>
                             <th>优先级</th>
                             <th class="text-center">特征</th>
                             <th></th>
@@ -107,6 +108,10 @@
                                 </label>
                                 <label v-else>@{{ item.unit_price }}</label>
                             </td>
+                            <td>
+                                <span v-if="item.discount_price.length>0"><small v-for="(price,i) in item.discount_price">@{{ models[thisIndex].discountCount[i] }}单/@{{ price }}元<br></small></span>
+                                <span v-else>/</span>
+                            </td>
                             <td>
                                 <label v-if="updateDetailId == item.id">
                                     <input type="number" min="0" id="detailPriority" class="form-control form-control-sm"
@@ -156,6 +161,7 @@
                     @endforeach
                 ],
                 thisId : "",
+                thisIndex : "",
                 items : [],
                 updateDetailId : '',
                 units : null,
@@ -186,7 +192,7 @@
                 this.form.init();
             },
             methods:{
-                showDetail(id,type){
+                showDetail(id,type,index){
                     if (this.items[id]){
                         this.thisId = id;
                         $("#model-"+id).after($("#detail"));
@@ -195,8 +201,12 @@
                     window.axios.post("{{url('maintenance/priceModel/operation/getItems')}}",{id:id,type:type})
                         .then(res=>{
                             if (res.data.success){
+                                res.data.data.forEach((item,i)=>{
+                                    res.data.data[i].discount_price = item.discount_price ? item.discount_price.split(",") : [];
+                                });
                                 this.items[id] = res.data.data;
                                 this.thisId = id;
+                                this.thisIndex = index;
                                 $("#model-"+id).after($("#detail"));
                                 return;
                             }