Преглед изворни кода

Merge branch 'zzd' of ssh://was.baoshi56.com:10022/var/git/bswas

 Conflicts:
	database/migrations/2021_01_08_112003_add_default_mail_event_role.php
LD пре 5 година
родитељ
комит
3d6f06831e

+ 17 - 2
app/Http/Controllers/ControlPanelController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Components\AsyncResponse;
 use App\Owner;
 use App\Services\CheckActiveMenuService;
 use App\Services\LaborReportsCountingRecordService;
@@ -10,13 +11,14 @@ use App\Services\RealtimePendingOrdersService;
 use App\Services\UserService;
 use App\User;
 use Carbon\Carbon;
-use DebugBar\DataFormatter\DataFormatter;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\DB;
 
 class ControlPanelController extends Controller
 {
-
+    use AsyncResponse;
 
     /**
      * ControlPanelController constructor.
@@ -131,4 +133,17 @@ class ControlPanelController extends Controller
             return array_intersect($ownerIds, $permittingOwnerIds);
         });
     }
+
+    public function weightApi()
+    {
+        $ownerIds = app("UserService")->getPermittingOwnerIds(Auth::user());
+        if (!$ownerIds)$this->success();
+
+        $start = request("start");
+        $end   = request("end");
+        
+        //是否包含当天
+        //天 周 月 年
+        //缓存优先级-》缓存失效策略
+    }
 }

+ 0 - 62
app/Http/Controllers/TestController.php

@@ -304,68 +304,6 @@ sql;
         dd($uploaded . '/' . $count);
     }
 
-    function tlog(Request $request)
-    {
-        app('LogService')->log(__METHOD__, 'cczdelme' . __FUNCTION__, json_encode($request->all()), null);
-    }
-
-    function setCache(Request $request)
-    {
-        $today = now();
-        Cache::put('storedTest', $today);
-        return "cacheing:'$today'<script>localStorage.setItem('storedTest','{$today}')</script>";
-    }
-
-    function getCache(Request $request)
-    {
-        $cache = Cache::get('storedTest');
-        return "cacheing get:'$cache'<script>document.write('<br>localStorage:'+localStorage.getItem('storedTest'))</script>";
-    }
-
-    function t1(Request $request)
-    {
-        $times=12345;
-        $start_at = microtime(true);
-        for($i=0;$i<$times;$i++){
-            Cache::put(md5('k_delme'.$i), 'a');
-        }
-        echo microtime(true)-$start_at, '<br>';
-
-        $start_at = microtime(true);
-        for($i=0;$i<$times;$i++){
-            Cache::get(md5('k_delme'.$i));
-        }
-        echo microtime(true)-$start_at, '<br>';
-
-        $start_at = microtime(true);
-        for($i=0;$i<$times;$i++){
-            Cache::pull(md5('k_delme'.$i));
-        }
-        echo microtime(true)-$start_at, '<br>';
-        for($i=0;$i<$times;$i++){
-            Redis::set(md5('k_delme'.$i), 'a');
-        }
-        echo microtime(true)-$start_at, '<br>';
-
-        $start_at = microtime(true);
-        for($i=0;$i<$times;$i++){
-            Redis::get(md5('k_delme'.$i));
-        }
-        echo microtime(true)-$start_at, '<br>';
-
-        $start_at = microtime(true);
-        for($i=0;$i<$times;$i++){
-            Redis::del(md5('k_delme'.$i));
-        }
-        echo microtime(true)-$start_at, '<br>';
-    }
-
-    function packageT(Request $request)
-    {
-        $package = Package::where('created_at', '<', '2020-07-08')->whereNotNull('logistic_number')->first();
-        $package->fetchLogistic();
-    }
-
     function injectJS(Request $request)
     {
         $items = RejectedBillItem::whereHas('rejectedBill', function ($query) {

+ 22 - 0
app/OrderPackageCountingRecord.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+use App\Traits\LogModelChanging;
+
+class OrderPackageCountingRecord extends Model
+{
+    use LogModelChanging;
+
+    protected $fillable=[
+        "targeted_at","owner_id","un_weigh_count","total_count"
+    ];
+    public $timestamps=false;
+
+    public function owner()
+    {   //货主
+        return $this->belongsTo(Owner::class);
+    }
+}

+ 3 - 3
app/Services/PackageStatisticsService.php

@@ -20,10 +20,10 @@ Class PackageStatisticsService
     private function conditionQuery(array $params){
         $ownerIds = app('UserService')->getPermittingOwnerIds(auth()->user());
         $query = DB::table('order_packages')->select(DB::raw('COUNT(*) AS count'))
-            ->whereIn('owner_id',$ownerIds)
+            ->whereIn('order_packages.owner_id',$ownerIds)
             ->whereNotNull('logistic_id')
             ->leftJoin('orders','order_packages.order_id','orders.id')
-                ->selectRaw('owner_id,logistic_id');
+                ->selectRaw('orders.owner_id,logistic_id');
 
         $columnQueryRules=[
             'created_at_start' => ['alias' => 'created_at','startDate' => ":00"],
@@ -31,7 +31,7 @@ Class PackageStatisticsService
             'logistic_id' => ['multi' => ','],
             'owner_id' => ['multi' => ','],
         ];
-        $query = $query->groupBy('owner_id','logistic_id');
+        $query = $query->groupBy('order_packages.owner_id','logistic_id');
         return app(QueryService::class)->query($params,$query,$columnQueryRules);
     }
 

+ 1 - 1
app/Services/WaybillService.php

@@ -21,7 +21,7 @@ Class WaybillService
      */
     private function conditionQuery(array $param){
         $waybills = Waybill::filterAuthorities()->with(['owner','logistic','originationCity','destinationCity.province',
-            'uploadFile','amountUnit','warehouseWeightUnit','carrierWeightUnit',
+            'uploadFile','amountUnit','warehouseWeightUnit','carrierWeightUnit','district',
             'warehouseWeightUnitOther','carrierWeightUnitOther','carType','uploadFile','waybillAuditLogs.user'])
             ->selectRaw('waybills.* ,waybill_on_tops.id top_id ,waybill_on_tops.remark,waybill_on_tops.updated_at top_update')
             ->leftJoin('waybill_on_tops','waybill_on_tops.waybill_id','=','waybills.id')

+ 0 - 0
database/migrations/2021_01_08_112003_add_default_mail_event_role.php


+ 34 - 0
database/migrations/2021_01_25_104626_create_order_package_counting_records_table.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateOrderPackageCountingRecordsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('order_package_counting_records', function (Blueprint $table) {
+            $table->date("targeted_at")->comment("统计日期");
+            $table->bigInteger("owner_id")->comment("货主");
+            $table->integer("un_weigh_count")->default(0)->comment("未称重数量");
+            $table->integer("total_count")->default(0)->comment("总数");
+            $table->index(["targeted_at","owner_id"]);
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('order_package_counting_records');
+    }
+}

+ 17 - 0
resources/views/control/panel.blade.php

@@ -346,6 +346,16 @@
                     </div>
                 @endcan
             </div>
+            <div class="row my-3">
+                <div class="col-6 card">
+                    <div class="card-header">
+
+                    </div>
+                    <div class="card-body">
+                        <div id="weight"></div>
+                    </div>
+                </div>
+            </div>
         </div>
     </div>
 @endsection
@@ -454,6 +464,7 @@
                 laborReportsCountingRecordsYearShow: false,
                 laborReportsCountingRecordsStart: moment().subtract('1', 'month').format('yyyy-MM-DD'),
                 laborReportsCountingRecordsEnd: moment(new Date()).format('yyyy-MM-DD'),
+                load:{},
             },
             watch:{
                 selectOrderOwners:function(val,oldval){
@@ -843,6 +854,12 @@
                         }
                     });
                 },
+                loadWeightInfo(){
+                    this.$set(this.load,"weight",true);
+                    /*window.tempTip.postBasicRequest("{{url('apiLocal/control/panel/menu/weightApi')}}",{},res=>{
+
+                    });*/
+                },
             }
         });
     </script>

+ 59 - 43
resources/views/maintenance/region/index.blade.php

@@ -3,52 +3,51 @@
 
 @section('content')
     @component('maintenance.menu')@endcomponent
-    <div class="container-fluid" id="container">
+    <div class="container-fluid d-none" id="container">
         <div class="card">
             <div class="card-body mt-2">
-                <div class="row">
-                    <div class="col-5 offset-4">
-                        <div class="row m-0 font-weight-bold">
-                            <label class="offset-1 col-4">省份</label>
-                            <label class="col-4">邮编</label>
-                            <label class="col-3">状态</label>
+                <div class="ml-2">
+                    <div v-for="region in parentMapping[0]" :style="{'margin-left':(2+region.type)+'%'}">
+                        <div>
+                            <span class="fa fa-hand-o-right cursor-pointer" @click="showItem('tree-'+region.id,$event)" v-if="parentMapping[region.id]"></span>
+                            <span v-else>&nbsp;&nbsp;&nbsp;</span>
+                            &nbsp;&nbsp;<span class="fa fa-circle" :class="region.deleted_at ? 'text-danger' : 'text-success'"></span>&nbsp;
+                            @{{ region.name }}<label class="text-secondary" v-if="region.code">(@{{ region.code }})</label>
                         </div>
-                    </div>
-                </div>
-                <div class="row" v-for="region in parentMapping[0]">
-                    <div class="col-5 offset-4">
-                        <div class="row m-0">
-                            <span class="fa fa-angle-double-right col-1 cursor-pointer" @click="showItem()"></span>
-                            <label class="col-4">@{{ region.name }}</label>
-                            <label class="col-4">@{{ region.code }}</label>
-                            <label class="col-3">
-                                <span class="fa fa-circle" :class="region.deleted_at ? 'text-danger' : 'text-success'"></span>
-                                <span v-if="region.deleted_at">冻结</span><span v-else>正常</span>
-                            </label>
-                        </div>
-                    </div>
-                    <div class="col-5 offset-5 border rounded border-2">
-                        <div class="row" v-for="city in parentMapping[region.id]">
-                            <div class="col-12">
-                                <div class="row m-0">
-                                    <span class="fa fa-angle-double-right col-1 cursor-pointer"></span>
-                                    <label class="col-3">@{{ city.name }}</label>
-                                    <label class="col-4">@{{ city.code }}</label>
-                                    <label class="col-3">
-                                        <span class="fa fa-circle" :class="city.deleted_at ? 'text-danger' : 'text-success'"></span>
-                                        <span v-if="city.deleted_at">冻结</span><span v-else>正常</span>
-                                    </label>
+                        <div :id="'tree-'+region.id" class="up">
+                            <div v-for="city in parentMapping[region.id]" :style="{'margin-left':(2+city.type)+'%'}">
+                                <div>
+                                    <span class="fa fa-hand-o-right cursor-pointer" @click="showItem('tree-'+city.id,$event)" v-if="parentMapping[city.id]"></span>
+                                    <span v-else>&nbsp;&nbsp;&nbsp;</span>
+                                    &nbsp;&nbsp;<span class="fa fa-circle" :class="city.deleted_at ? 'text-danger' : 'text-success'"></span>&nbsp;
+                                    @{{ city.name }}<label class="text-secondary" v-if="city.code">(@{{ city.code }})</label>
                                 </div>
-                                <div class="row m-0">
-                                    <div class="col-10 offset-2">
-                                        <div class="row" v-for="district in parentMapping[city.id]">
-                                            <span class="fa fa-angle-double-right col-1 cursor-pointer"></span>
-                                            <label class="col-3">@{{ city.name }}</label>
-                                            <label class="col-4">@{{ city.code }}</label>
-                                            <label class="col-3">
-                                                <span class="fa fa-circle" :class="city.deleted_at ? 'text-danger' : 'text-success'"></span>
-                                                <span v-if="city.deleted_at">冻结</span><span v-else>正常</span>
-                                            </label>
+                                <div :id="'tree-'+city.id" class="up">
+                                    <div v-for="district in parentMapping[city.id]" :style="{'margin-left':(2+district.type)+'%'}">
+                                        <div>
+                                            <span class="fa fa-hand-o-right cursor-pointer" @click="showItem('tree-'+district.id,$event)" v-if="parentMapping[district.id]"></span>
+                                            <span v-else>&nbsp;&nbsp;&nbsp;</span>
+                                            &nbsp;&nbsp;<span class="fa fa-circle" :class="district.deleted_at ? 'text-danger' : 'text-success'"></span>&nbsp;
+                                            @{{ district.name }}<label class="text-secondary" v-if="district.code">(@{{ district.code }})</label>
+                                        </div>
+                                        <div :id="'tree-'+district.id" class="up">
+                                            <div v-for="town in parentMapping[district.id]" :style="{'margin-left':(2+town.type)+'%'}">
+                                                <div>
+                                                    <span class="fa fa-hand-o-right cursor-pointer" @click="showItem('tree-'+town.id,$event)" v-if="parentMapping[town.id]"></span>
+                                                    <span v-else>&nbsp;&nbsp;&nbsp;</span>
+                                                    &nbsp;&nbsp;<span class="fa fa-circle" :class="town.deleted_at ? 'text-danger' : 'text-success'"></span>&nbsp;
+                                                    @{{ town.name }}<label class="text-secondary" v-if="town.code">(@{{ town.code }})</label>
+                                                </div>
+                                                <div :id="'tree-'+town.id" class="up">
+                                                    <div v-for="street in parentMapping[town.id]" :style="{'margin-left':(2+street.type)+'%'}">
+                                                        <div>
+                                                            {{--<span class="fa fa-hand-o-right cursor-pointer" @click="showItem('tree-'+street.id,$event)"></span>&nbsp;&nbsp;--}}
+                                                            <span class="fa fa-circle" :class="street.deleted_at ? 'text-danger' : 'text-success'"></span>&nbsp;
+                                                            @{{ street.name }}<label class="text-secondary" v-if="street.code">(@{{ street.code }})</label>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </div>
                                         </div>
                                     </div>
                                 </div>
@@ -72,6 +71,7 @@
                     @endforeach
                 ],
                 parentMapping:{},
+                showList:{},
             },
             mounted(){
                 let parent = {};
@@ -81,7 +81,23 @@
                     else parent[p] = [region];
                 });
                 this.parentMapping = parent;
-                console.log(parent);
+                setTimeout(()=>{
+                    $(".up").slideUp();
+                    $("#container").removeClass("d-none");
+                },0);
+            },
+            methods:{
+                showItem(id,event){
+                    if (this.showList[id]){
+                        this.showList[id] = false;
+                        event.target.className = "fa fa-hand-o-right cursor-pointer";
+                        $("#"+id).slideUp();
+                    }else{
+                        this.showList[id] = true;
+                        event.target.className = "fa fa-hand-o-down cursor-pointer";
+                        $("#"+id).slideDown();
+                    }
+                },
             },
         });
     </script>

+ 3 - 0
resources/views/order/index/_freezeModal.blade.php

@@ -18,6 +18,9 @@
                             v-model="freeze.logistic_id">
                             <option v-for="logistic in data.logistics" :value="logistic.id">@{{ logistic.name }}</option>
                     </select>
+                    <label class="col-2">
+                        <input class="ml-1 form-control form-control-sm rounded-pill" @input="searchLogistic($event)" placeholder="搜索承运商">
+                    </label>
                     <span class="invalid-feedback mt-0 offset-3" role="alert" v-if="errors.logistic_id">
                         <strong>@{{ errors.logistic_id[0] }}</strong>
                     </span>

+ 13 - 1
resources/views/order/index/freeze.blade.php

@@ -3,7 +3,7 @@
 
 @section('content')
     @component('order.index.menu')@endcomponent
-    <div class="card" id="container">
+    <div class="card d-none" id="container">
         <div class="card-body">
             <div class="container-fluid">
 
@@ -61,6 +61,9 @@
                 result : [],
                 stop:false,
             },
+            mounted(){
+                $("#container").removeClass("d-none");
+            },
             methods:{
                 openModal(model = null,index = null){
                     if (!model)this.freeze = {};
@@ -217,6 +220,15 @@
                     this.freeze = obj;
                     this.stop = true;
                 },
+                searchLogistic(e){
+                    let val = e.target.value;
+                    this.data.logistics.some(logistic=>{
+                        if (logistic.name.indexOf(val)!==-1){
+                            this.$set(this.freeze,"logistic_id",logistic.id);
+                            return true;
+                        }
+                    });
+                },
             },
         });
     </script>

+ 26 - 10
resources/views/waybill/index.blade.php

@@ -123,7 +123,8 @@
                     <td class="td-warm">@{{waybill.other_charge_remark}}</td>
                     <td class="td-warm">
                         <div align="center" @mouseleave="removeCommonImg('common_img_'+waybill.id)" @mouseenter="commonImg('img_'+waybill.id,waybill.url,waybill.suffix)">
-                            <img v-if="waybill.url" :id="'img_'+waybill.id"  :data-src="waybill.url+'-thumbnail.'+waybill.suffix" src="{{url('icon/img404-thumbnail.jpg')}}">
+                            <img v-if="waybill.url" :id="'img_'+waybill.id"  :src="waybill.url+'-thumbnail.'+waybill.suffix"
+                                    {{--:data-src="waybill.url+'-thumbnail.'+waybill.suffix" src="{{url('icon/img404-thumbnail.jpg')}}"--}}>
                             @can('运输管理-图片上传')<div v-if="!waybill.url">
                                 <input class="btn  btn-sm btn-outline-secondary" type="button" @click="certiimg(waybill.waybill_number)" value="上传照片 "/>
                                 <input type="file" @change="submitFile($event,waybill.waybill_number)" :id="waybill.waybill_number"
@@ -134,6 +135,9 @@
                     <td class="td-cool">@{{waybill.recipient}}</td>
                     <td class="td-cool">@{{waybill.recipient_mobile}}</td>
                     <td class="td-cool text-muted">@{{waybill.origination}}</td>
+                    <td class="td-cool text-muted">@{{waybill.province}}</td>
+                    <td class="td-cool text-muted">@{{waybill.city}}</td>
+                    <td class="td-cool text-muted">@{{waybill.district}}</td>
                     <td class="td-cool text-muted">@{{waybill.destination}}</td>
                     <td class="td-cool">@{{waybill.carrier}}</td>
                     <td class="td-cool">
@@ -290,12 +294,12 @@
                         source_bill:'{{$waybill->source_bill}}',
                         wms_bill_number:'{{$waybill->wms_bill_number}}',
                         origination:'{{$waybill->origination}}',
-                        destination:'{{$waybill->destination_city_id}}'?
+                        destination:'{{--{{$waybill->destination_city_id}}'?
                             (('{{$waybill->destination}}'.indexOf('{{$waybill->destinationCity ? $waybill->destinationCity->name : ''}}')===-1 &&
                                 '{{$waybill->destination}}'.indexOf('{{$waybill->destinationCity ? ($waybill->destinationCity->province ? $waybill->destinationCity->province->name : '') : ''}}')===-1)?
                                 '{{($waybill->destinationCity ? ($waybill->destinationCity->province ? $waybill->destinationCity->province->name : '') : '').($waybill->destinationCity ? $waybill->destinationCity->name : '').($waybill->destination)}}'
                                 :'{{$waybill->destination}}')
-                            :'{{$waybill->destination}}',
+                            :'{{$waybill->destination}}--}}{{$waybill->destination}}',
                         recipient:'{{$waybill->recipient}}',
                         recipient_mobile:'{{$waybill->recipient_mobile}}',
                         charge:'{{$waybill->charge}}',
@@ -326,7 +330,9 @@
                         waybillAuditLogs:{!! $waybill->waybillAuditLogs !!},
                         btn_refresh_weight:'zoomIn',
                         remark:'{{$waybill->remark ?? ''}}',
-                        test:{!! $waybill !!}
+                        province:'{{$waybill->destinationCity->province->name ?? ''}}',
+                        city:'{{$waybill->destinationCity->name ?? ''}}',
+                        district:'{{$waybill->district->name ?? ''}}',
                     },
                     @endforeach
                 ],
@@ -360,6 +366,7 @@
                 count : Number('{{$waybills->count()}}'),
                 images:[],
                 batchUploadError:[],
+                size:0,
             },
             watch:{
                 checkData:{
@@ -381,11 +388,11 @@
                 $('#list').removeClass('d-none');
                 let waybill =  $('.table-header-layer-1')[1];
                 $('.top').css('min-width', waybill.scrollWidth);
-                this.imgs=Array.from(document.getElementById('list').querySelectorAll('img'));
+                /*this.imgs=Array.from(document.getElementById('list').querySelectorAll('img'));
                 this.lazy();
                 if (this.imgs&&this.imgs.length>0){
                     window.addEventListener('scroll',this.lazy)
-                }
+                }*/
                 let data=[
                     [
                         {name:'owner_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的客户'],
@@ -436,6 +443,9 @@
                     {name:'recipient',value: '收件人', class:"td-cool"},
                     {name:'recipient_mobile',value: '收件人电话', class:"td-cool"},
                     {name:'origination',value: '始发地', class:"td-cool"},
+                    {name:'province',value: '省', class:"td-cool"},
+                    {name:'city',value: '市', class:"td-cool"},
+                    {name:'district',value: '区', class:"td-cool"},
                     {name:'destination',value: '目的地', class:"td-cool"},
                     {name:'carrier',value: '承运商', class:"td-cool"},
                     {name:'carrier_bill',value: '单号/车型', neglect: true, class:"td-cool"},
@@ -475,12 +485,12 @@
                 btnRefreshWeightZoomOut(waybill){
                     waybill.btn_refresh_weight='zoomOut'
                 },
-                lazy(){
+                /*lazy(){
                     //高度
                     let h=(window.innerWidth)+(document.documentElement.scrollTop || document.body.scrollTop);
                     this.imgs.forEach((img,i)=>{
                         let src = img.getAttribute('data-src');
-                        if ((h>this.getElementToPageTop(img)) && src){
+                        if ((h>this.getElementToPageTop(img)-500) && src){
                             let t = new Image();
                             t.src = src;
                             if (t.complete) {
@@ -500,7 +510,7 @@
                         return this.getElementToPageTop(el.parentElement) + el.offsetTop
                     }
                     return el.offsetTop
-                },
+                },*/
                 waybillAudit(id,waybill_number){
                     if(!confirm('确定要通过“'+waybill_number+'”的审核吗?')){return};
                     let _this=this;
@@ -995,6 +1005,7 @@
                     for(let i=0;i<images.length;i++){
                         images[i]['src'] = window.URL.createObjectURL(images[i]);
                         this.images.push(images[i]);
+                        this.size += images[i].size;
                     }
                 },
                 //删除图片
@@ -1003,11 +1014,15 @@
                 },
                 //上传图片
                 batchUploadImages(){
+                    window.tempTip.setDuration(3000);
                     if (this.images.length<1){
-                        window.tempTip.setDuration(3000);
                         window.tempTip.show("未选择图片");
                         return;
                     }
+                    if (this.size > 10485760){
+                        window.tempTip.show("上传图片超出10MB,请分开上传");
+                        return;
+                    }
                     let formData = new FormData();
                     this.images.forEach(image=>{
                         formData.append("images[]",image);
@@ -1034,6 +1049,7 @@
                                         return true;
                                     }
                                 });
+                                this.size = 0;
                             });
                             this.$forceUpdate();
                             window.tempTip.cancelWaitingTip();

+ 1 - 0
routes/apiLocal.php

@@ -107,4 +107,5 @@ Route::group(['prefix'=>'control'],function () {
     Route::post('panel/menu/warehouseCountingRecordsApi','ControlPanelController@warehouseCountingRecordsApi');
     Route::post('panel/menu/laborReportsCountingRecordApi','ControlPanelController@laborReportsCountingRecordApi');
     Route::post('panel/menu/laborReportsUserGroupsCountApi','ControlPanelController@laborReportsUserGroupsCountApi');
+    Route::post('panel/menu/weightApi','ControlPanelController@weightApi');
 });