|
|
@@ -0,0 +1,207 @@
|
|
|
+
|
|
|
+@extends('layouts.app')
|
|
|
+@section('title')入库管理@endsection
|
|
|
+
|
|
|
+@section('content')
|
|
|
+ <span id="nav2">
|
|
|
+ @component('weight.menu')@endcomponent
|
|
|
+ </span>
|
|
|
+ <div class="d-none" id="statistics">
|
|
|
+ <div class="container-fluid mt-3">
|
|
|
+ <div class="">
|
|
|
+ <div>
|
|
|
+ <form method="GET" action="{{url('package/statistics')}}" style="margin-top: 1%" id="optionSubmit">
|
|
|
+ <table class="table table-sm table-bordered text-nowrap ">
|
|
|
+ <tr v-if="isBeingFilterConditions">
|
|
|
+ <td colspan="10"><div class="col" style="padding:0">
|
|
|
+ <a href="{{url('package/statistics')}}"><span class="btn btn-warning text-dark">清除过滤条件</span></a>
|
|
|
+ </div></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="2">
|
|
|
+ <span class="text-muted">根据条件过滤:</span>
|
|
|
+ </td>
|
|
|
+ <td >
|
|
|
+ <label class="form-inline" style="width: 350px">时间:
|
|
|
+ <input style="width: 150px" name="date_start" type="date" v-model="filterData.created_at_start" class="form-control-sm">
|
|
|
+ <input style="width: 150px" type="date" name="date_end" v-model="filterData.created_at_end" class="form-control-sm">
|
|
|
+ </label>
|
|
|
+ </td>
|
|
|
+ <td class="form-inline">
|
|
|
+ <label >选择货主:</label>
|
|
|
+ <div style="max-height: 90px;width:100px;overflow-y: scroll;border: solid 1px #ddd;border-radius:5px;opacity:0.5;text-align: center;transform:scale(0.9)" v-if="ownersCopy.length>0">
|
|
|
+ <ul class="list-group">
|
|
|
+ <li class="tooltipTarget" title="双击添加货主" v-for="ownerCopy in ownersCopy"
|
|
|
+ @dblclick="selectedOwner(ownerCopy)" :style="ownerCopy.style ? selectedOwnerStyle :''" style="list-style: none"><a >@{{ ownerCopy.name }}</a></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <label for="">物流公司:</label>
|
|
|
+ <input type="text" class="form-control-sm tooltipTarget" placeholder="查找"
|
|
|
+ style="width:70px" @input="logistic_seek"
|
|
|
+ title="输入关键词快速定位下拉列表,回车确定">
|
|
|
+ <select name="logistic_seek" v-model="filterData.owner_id" class="form-control-sm tooltipTarget">
|
|
|
+ <option > </option>
|
|
|
+ @foreach($logistics as $logistic)
|
|
|
+ <option value="{{$logistic->id}}">{{$logistic->name}}</option>
|
|
|
+ @endforeach
|
|
|
+ </select>
|
|
|
+ <input hidden type="submit" value="kk">
|
|
|
+ </td>
|
|
|
+ </table>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <div class="">
|
|
|
+ <table class="table table-striped table-sm text-nowrap table-hover">
|
|
|
+ <tr >
|
|
|
+ <th>货主</th>
|
|
|
+ <th v-for="logisticCopy in logisticsCopy">@{{ logisticCopy.name }}</th>
|
|
|
+ <th>总计</th>
|
|
|
+ </tr>
|
|
|
+ <tr v-for="ownerModel in ownersModel">
|
|
|
+ <th>@{{ ownerModel.name }}</th>
|
|
|
+ <td v-for="logisticCopy in logisticsCopy">@{{ ownerModel.logistics[logisticCopy.name] }}</td>
|
|
|
+ <td>@{{ ownerModel.sum }}</td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+@endsection
|
|
|
+
|
|
|
+@section('lastScript')
|
|
|
+ <style>
|
|
|
+ li a:hover{background-color: #4aa0e6;display: block;cursor:pointer}
|
|
|
+ </style>
|
|
|
+ <script>
|
|
|
+ new Vue({
|
|
|
+ el:"#statistics",
|
|
|
+ data:{
|
|
|
+ packages:[
|
|
|
+ @foreach($packages as $package)
|
|
|
+ {owner_id:'{{$package->owner_id}}',logistic_id:'{{$package->logistic_id}}',count:'{{$package->count}}',
|
|
|
+ owner_name:'',logistic_name:''},
|
|
|
+ @endforeach
|
|
|
+ ],
|
|
|
+ owners:{
|
|
|
+ @foreach($owners as $owner)
|
|
|
+ '{{$owner->id}}' : "{{$owner->name}}",
|
|
|
+ @endforeach
|
|
|
+ },
|
|
|
+ logistics:{
|
|
|
+ @foreach($logistics as $logistic)
|
|
|
+ '{{$logistic->id}}' : "{{$logistic->name}}",
|
|
|
+ @endforeach
|
|
|
+ },
|
|
|
+ ownersCopy:[
|
|
|
+ @foreach($owners as $owner)
|
|
|
+ {id:'{{$owner->id}}',name:"{{$owner->name}}",style:false},
|
|
|
+ @endforeach
|
|
|
+ ],
|
|
|
+ logisticsCopy:[],
|
|
|
+ ownersModel:[],
|
|
|
+ filterData:
|
|
|
+ {owner_id:'',logistic_id:'',date_start:'',date_end:''},
|
|
|
+ selectedOwners:[],
|
|
|
+ selectedLogistics:[],
|
|
|
+ selectedOwnerStyle:'background-color: #a1cbef',
|
|
|
+ },
|
|
|
+ computed:{
|
|
|
+ isBeingFilterConditions:function(){
|
|
|
+
|
|
|
+ for(let key in this.filterData){
|
|
|
+ if(this.filterData[key]){
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted:function(){
|
|
|
+ $(".tooltipTarget").tooltip({'trigger':'hover'});
|
|
|
+ $('#statistics').removeClass('d-none');
|
|
|
+ let _this=this;
|
|
|
+ let owners=this.owners;
|
|
|
+ let logistics=this.logistics;
|
|
|
+ this.packages.forEach(function (package){
|
|
|
+ if (owners[package.owner_id]){
|
|
|
+ package.owner_name=owners[package.owner_id];
|
|
|
+ }
|
|
|
+ if (logistics[package.logistic_id]){
|
|
|
+ package.logistic_name=logistics[package.logistic_id];
|
|
|
+ let isLogistic=_this.logisticsCopy.every(function (logisticCopy) {
|
|
|
+ if (logisticCopy.name==logistics[package.logistic_id]){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ if (isLogistic){
|
|
|
+ _this.logisticsCopy.push({'id':package.logistic_id,'name':package.logistic_name});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let isEvery=true;
|
|
|
+ if (_this.ownersModel) {
|
|
|
+ isEvery=_this.ownersModel.every(function (ownerModel) {
|
|
|
+ if (ownerModel.name==package.owner_name){
|
|
|
+ ownerModel.logistics[package.logistic_name]=package.count;
|
|
|
+ ownerModel.sum=parseInt(ownerModel.sum)+parseInt(package.count);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (isEvery){
|
|
|
+ let obj={};
|
|
|
+ obj[package.logistic_name]=package.count;
|
|
|
+ _this.ownersModel.push({'id':package.owner_id,'name':package.owner_name,'sum':package.count,'logistics':obj,});
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ owner_seek:function (e) {
|
|
|
+ let _this=this;
|
|
|
+ let $val=e.target.value;
|
|
|
+ if($val==='')_this.filterData.owner_id='';
|
|
|
+ else{
|
|
|
+ @foreach($owners as $owner)
|
|
|
+ if ("{{ $owner->name }}".includes($val)){
|
|
|
+ _this.filterData.owner_id="{{ $owner->id }}";
|
|
|
+ }
|
|
|
+ @endforeach
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectedOwner:function (e) {
|
|
|
+ let selectedOwners=this.selectedOwners;
|
|
|
+ let sign = true;
|
|
|
+ for (let i=0;i<selectedOwners.length;i++){
|
|
|
+ if (selectedOwners[i]==e.id){
|
|
|
+ selectedOwners.splice(i,1);
|
|
|
+ this.ownersCopy.every(function (ownerCopy) {
|
|
|
+ if (ownerCopy.id==e.id) {
|
|
|
+ ownerCopy.style=false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ sign=false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sign) {
|
|
|
+ this.selectedOwners.push(e.id);
|
|
|
+ this.ownersCopy.every(function (ownerCopy) {
|
|
|
+ if (ownerCopy.id==e.id) {
|
|
|
+ ownerCopy.style=true;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+ </script>
|
|
|
+@endsection
|