Sfoglia il codice sorgente

BUG修复:客户管理在进入编辑页面时加载顺序与重复加载

Zhouzhendong 5 anni fa
parent
commit
7b1ea6213c

+ 1 - 50
app/Http/Controllers/TestController.php

@@ -161,56 +161,7 @@ sql;
     }
     public function zzd()
     {
-        $model4 = factory(OwnerPriceOperation::class)->create([
-            "operation_type"=>"出库",   //操作类型
-            "strategy"      =>"特征",         //策略
-        ]);
-        $pieces = Unit::query()->where("name","件")->first();
-        $box = Unit::query()->where("name","箱")->first();
-        $single = Unit::query()->where("name","单")->first();
-        if (!$pieces){
-            $pieces = factory(Unit::class)->create(["name"=>"件"]);
-        }
-        if (!$box){
-            $box = factory(Unit::class)->create(["name"=>"箱"]);
-        }
-        if (!$single){
-            $single = factory(Unit::class)->create(["name"=>"单"]);
-        }
-        $item8 = factory(OwnerPriceOperationItem::class)->create([
-            "owner_price_operation_id"          => $model4->id,
-            "strategy"                          => "起步",
-            "unit_id"                           => $box->id,
-            "unit_price"                        => 5.5,
-        ]);
-        $item9 = factory(OwnerPriceOperationItem::class)->create([
-            "owner_price_operation_id"          => $model4->id,
-            "strategy"                          =>"默认",
-            "unit_id"                           => $box->id,
-            "unit_price"                        => 5.6,
-        ]);
-        $item10 = factory(OwnerPriceOperationItem::class)->create([
-            "owner_price_operation_id"          => $model4->id,
-            "strategy"                          =>"特征",
-            "unit_id"                           => $box->id,
-            "unit_price"                        => 5.7,
-        ]);
-        $owner = factory(Owner::class)->create([
-            "user_owner_group_id" => 1,
-        ]);
-        $model4->ownerPriceOperationOwners()->sync([$owner->id]);
-
-        $commodity = factory(Commodity::class)->create([
-            'sku' => md5(date('Ymd').\Illuminate\Support\Str::random(3)),
-            'owner_id' => $owner->id,
-            "pack_spec" => 3
-        ]);
-        $result = app(OwnerPriceOperationService::class)
-            ->matching(["packages"=>
-                [["commodity"=>"测试","amount"=>57,"sku"=>$commodity->sku]]]
-                ,[],
-                $owner->id,"出库");
-        dd($result);
+        return view("test");
     }
 
     public function zzd1()

+ 1 - 1
resources/js/utilities/tempTip.js

@@ -134,7 +134,7 @@ const tempTip={
             this.setDuration(3000);
             this.show('网络异常:'+err);
         });
-    }
+    },
 };
 module.exports=tempTip;
 

+ 31 - 75
resources/views/customer/project/create.blade.php

@@ -394,18 +394,14 @@
                     let url = "{{url('customer/project/getPriceModel')}}";
                     let params = {id:this.ownerTemp.id};
                     window.tempTip.postBasicRequest(url,params,res=>{
-                        this._getOwners();
-                        this._getUnits();
-                        this._getCars();
-                        this._getCities();
-                        this._getLogistics();
-                        this._getProvinces();
-                        setTimeout(()=> {
-                            $(".selectpicker").selectpicker('refresh');
-                        },500);
                         if (res.owner_storage_price_models.length>0)this.selectedModel.storage = res.owner_storage_price_models;
-                        if (res.owner_price_operations.length>0)this.selectedModel.operation = res.owner_price_operations;
+                        if (res.owner_price_operations.length>0){
+                            this._loadOperation();
+                            this.selectedModel.operation = res.owner_price_operations;
+                        }
                         if (res.owner_price_expresses.length>0){
+                            this._loadExpress();
+                            if (!this.pool.logistics)this._getLogistics();
                             res.owner_price_expresses.forEach((express,i)=>{
                                 express.logistics.forEach((logistic,j)=>{
                                     express.logistics[j] = logistic.id;
@@ -416,6 +412,11 @@
                             this.selectedModel.express = res.owner_price_expresses;
                         }
                         if (res.owner_price_logistics.length>0){
+                            if (res.owner_price_expresses.length===0)this._loadLogistic();
+                            else {
+                                this._getUnits();
+                                this._getCities();
+                            }
                             res.owner_price_logistics.forEach((logistic,i)=>{
                                 logistic.logistics.forEach((l,j)=>{
                                     logistic.logistics[j] = l.id;
@@ -436,7 +437,7 @@
                     });
                 },
                 //加载仓储所需基础信息
-                _loadStorage(){
+                async _loadStorage(){
                     if (!this.pool.units)this._getUnits();
                     if (!this.isLoad && this.ownerTemp.id)this._loadPriceModel();//计费模型未被加载且项目ID存在时
                     if (!this.isLoad && !this.ownerTemp.id) this.isLoad = true;
@@ -448,24 +449,14 @@
                 //加载快递
                 _loadExpress(){
                     if (!this.pool.provinces)this._getProvinces();
-                    if (!this.pool.logistics){
-                        this._getLogistics();
-                        setTimeout(()=>{
-                            $(".selectpicker").selectpicker('refresh');
-                        },500);
-                    }
+                    if (!this.pool.logistics)this._getLogistics();
                 },
                 //加载物流
                 _loadLogistic(){
                     if (!this.pool.units) this._getUnits();
                     if (!this.pool.provinces)this._getProvinces();
                     if (!this.pool.cities)this._getCities();
-                    if (!this.pool.logistics){
-                        this._getLogistics();
-                        setTimeout(()=>{
-                            $(".selectpicker").selectpicker('refresh');
-                        },500);
-                    }
+                    if (!this.pool.logistics)this._getLogistics();
                 },
                 //加载直发车
                 _loadDirectLogistic(){
@@ -476,83 +467,48 @@
                     if (!this.pool.owners)this._getOwners();
                     if (!this.pool.logistics)this._getLogistics();
                 },
+                _setModelData(key,val){
+                    let mapping = [];
+                    val.forEach(item=>{
+                        mapping[item.id] = item.name;
+                    });
+                    this.$set(this.pool,key,val);
+                    this.$set(this.poolMapping,key,mapping);
+                },
                 //获取项目
                 _getOwners(){
                     let url = "{{url('maintenance/owner/get')}}";
-                    window.tempTip.postBasicRequest(url,{},res=>{
-                        this.pool.owners = res;
-                        let mapping = [];
-                        res.forEach(owner=>{
-                            mapping[owner.id] = owner.name;
-                        });
-                        this.poolMapping.owners = mapping;
-                        this.$forceUpdate();
-                    });
+                    window.tempTip.postBasicRequest(url,{},res=>{this._setModelData("owners",res);});
                 },
                 //获取单位
                 _getUnits(){
                     let url = "{{url('maintenance/unit/getUnits')}}";
-                    window.tempTip.postBasicRequest(url,{},res=>{
-                        this.pool.units = res;
-                        let mapping = [];
-                        res.forEach(unit=>{
-                            mapping[unit.id] = unit.name;
-                        });
-                        this.poolMapping.units = mapping;
-                        this.$forceUpdate();
-                    });
+                    window.tempTip.postBasicRequest(url,{},res=>{this._setModelData("units",res);});
                 },
                 //获取省份
                 _getProvinces(){
                     let url = "{{url('maintenance/province/get')}}";
-                    window.tempTip.postBasicRequest(url,{},res=>{
-                        this.pool.provinces = res;
-                        let mapping = [];
-                        res.forEach(province=>{
-                            mapping[province.id] = province.name;
-                        });
-                        this.poolMapping.provinces = mapping;
-                        this.$forceUpdate();
-                    });
+                    window.tempTip.postBasicRequest(url,{},res=>{this._setModelData("provinces",res);});
                 },
                 //获取城市
                 _getCities(){
                     let url = "{{url('maintenance/city/get')}}";
-                    window.tempTip.postBasicRequest(url,{},res=>{
-                        this.pool.cities = res;
-                        let mapping = [];
-                        res.forEach(city=>{
-                            mapping[city.id] = city.name;
-                        });
-                        this.poolMapping.cities = mapping;
-                        this.$forceUpdate();
-                    });
+                    window.tempTip.postBasicRequest(url,{},res=>{this._setModelData("cities",res);});
                 },
                 //获取承运商
                 _getLogistics(){
                     let url = "{{url('maintenance/logistic/get')}}";
                     window.tempTip.postBasicRequest(url,{type:''},res=>{
-                        this.pool.logistics = res;
-                        let mapping = [];
-                        res.forEach(logistic=>{
-                            mapping[logistic.id] = logistic.name;
-                        });
-                        this.poolMapping.logistics = mapping;
-                        this.$forceUpdate();
+                        this._setModelData("logistics",res);
+                        setTimeout(()=>{
+                            $(".selectpicker").selectpicker('refresh');
+                        },0);
                     });
                 },
                 //获取车型
                 _getCars(){
                     let url = "{{url('maintenance/carType/get')}}";
-                    window.axios.post(url).then(res=>{
-                        this.pool.cars = res.data;
-                        let mapping = [];
-                        res.data.forEach(car=>{
-                            mapping[car.id] = car.name;
-                        });
-                        this.poolMapping.cars = mapping;
-                        this.$forceUpdate();
-                    });
+                    window.axios.post(url).then(res=>{this._setModelData("cars",res);});
                 },
                 //保存模型
                 saveModel(){

+ 71 - 15
resources/views/test.blade.php

@@ -1,15 +1,71 @@
-<html>
-<head>
-</head>
-
-<body>
-<form method="post" enctype="multipart/form-data" action="{{url('test/orderTrackingImportTest')}}">
-    @csrf
-    @method('post')
-    <input type="file" name="file">
-    <button type="submit">提交</button>
-</form>
-<script>
-</script>
-</body>
-</html>
+@extends('layouts.app')
+
+
+@section('content')
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-12">
+                <div class="h-1 w-100 text-center font-weight-bold mb-2 text-dark"></div>
+            </div>
+        </div>
+        <div class="row mt-2">
+            <div class="col-10">
+                <div class="row m-0" id="row">
+                    <div class="col-6">
+                        <div class="rounded p-0" id="video-1" onclick="selected(this)">
+                            测试测试
+                            <div class="rounded w-100" controls style="min-height: 500px;object-fit: fill" src="{{asset("123.mp4")}}"></div>
+                        </div>
+                    </div>
+                    <div class="col-6">
+                        <div class="rounded p-0" id="video-2" onclick="selected(this)">
+                            <video class="rounded w-100" controls style="min-height: 500px;object-fit: fill" src="{{asset("123.mp4")}}"></video>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-2 border-left border-3 border-primary text-center">
+                <button class="btn btn-danger" type="button" id="imgPool"></button>
+            </div>
+        </div>
+    </div>
+
+    <script>
+        let currentDom = "";
+        let hidden = false;
+        function selected(e){
+            if (currentDom === e.id)return;
+            if (currentDom)$("#"+currentDom).css('box-shadow','');
+            currentDom = e.id;
+            e.style.boxShadow = "0 0 10px 2px red";
+        }
+        document.onkeydown = function(ev) {
+            if(ev.keyCode === 32 && currentDom) {
+                ev.preventDefault();
+                html2canvas(document.getElementById(currentDom)).then(canvas=> {
+                    let base64 = canvas.toDataURL('images/png');
+                    let imgPool = $("#imgPool");
+                    if (!hidden){
+                        imgPool.after("<button class='btn btn-success mt-2 mb-0' type='button' onclick='uploadImg()'>上 传 截 图</button>");
+                        hidden = true;
+                    }
+                    imgPool.after("<div class='w-100 mt-2 h-auto' ondblclick='removeImg(this)'><img class='img-fluid images' alt='截图' src='"+base64+"'></div>");
+                });
+            }
+        };
+        function removeImg(e) {
+            e.remove();
+        }
+        function uploadImg() {
+            let list = $(".images");
+            list.each((i,dom)=>{
+                let base64 = dom.src;
+                //单次多请求上传
+            });
+        }
+    </script>
+@endsection
+
+@section('script')
+    <script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js"></script>
+@stop