|
|
@@ -69,6 +69,7 @@
|
|
|
<th class="td-yellow" style="min-width: 120px">运输方式</th>
|
|
|
<th class="td-yellow">运输单号</th>
|
|
|
<th class="td-yellow" style="min-width: 120px">到达城市</th>
|
|
|
+ <th class="td-yellow" style="min-width: 120px">照片</th>
|
|
|
<th class="td-calm" style="min-width: 200px">应送达时间</th>
|
|
|
<th class="td-calm" style="min-width: 120px">是否赶上卡班</th>
|
|
|
<th class="td-calm" style="min-width: 120px">到货情况</th>
|
|
|
@@ -160,7 +161,18 @@
|
|
|
</span>
|
|
|
</td>
|
|
|
<td class="td-yellow">@{{ trackOrder.orderCity}}</td>
|
|
|
-
|
|
|
+ <td class="td-yellow">
|
|
|
+ <div class="text-center" @mouseleave="removeCommonImg('common_img_'+trackOrder.id)" @mouseenter="commonImg('img_'+trackOrder.id,trackOrder)">
|
|
|
+ @can('订单管理-跟踪-仓库编辑')
|
|
|
+ <img v-if="trackOrder.upload_file" :id="'img_'+trackOrder.id" :data-src="trackOrder.upload_file.url+'-thumbnail.'+trackOrder.upload_file.type" src="{{url('icon/img404-thumbnail.jpg')}}">
|
|
|
+ <input v-else class="btn btn-sm btn-outline-secondary" type="button" @click="certiimg(trackOrder.id)" value="上传照片">
|
|
|
+ <input type="file" @change="submitFile($event,trackOrder)" :id="trackOrder.id+'input'"
|
|
|
+ style="display: none" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg"/>
|
|
|
+ @else
|
|
|
+ <img v-if="trackOrder.upload_file" :id="'img_'+trackOrder.id" :data-scr="trackOrder.upload_file.url" src="{{url('icon/img404-thumbnail.jpg')}}">
|
|
|
+ @endcan
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
<td class="td-calm">
|
|
|
@can('订单管理-跟踪-物流公司编辑')
|
|
|
<input class="form-control form-control-sm" type="date" @change="logisticUpdate($event,'planning_sent_at',trackOrder)" :value="trackOrder.planning_sent_at | date" >
|
|
|
@@ -266,6 +278,7 @@
|
|
|
trackingOwner : [],
|
|
|
status:'',
|
|
|
ownerName:'',
|
|
|
+ imgs:'',
|
|
|
page: {
|
|
|
total: {!! $trackOrders->toJson() !!}['total'],
|
|
|
},
|
|
|
@@ -273,6 +286,12 @@
|
|
|
isArrival: ['是','否'],
|
|
|
},
|
|
|
mounted:function(){
|
|
|
+ this.imgs=Array.from(document.getElementById('tracking_div').querySelectorAll('img'));
|
|
|
+ this.lazy();
|
|
|
+ if (this.imgs&&this.imgs.length>0){
|
|
|
+ window.addEventListener('scroll',this.lazy)
|
|
|
+ }
|
|
|
+
|
|
|
let selectDate1 = [
|
|
|
{name:'31',value:'近一月'},
|
|
|
{name:'92',value:'近三月'},
|
|
|
@@ -502,7 +521,111 @@
|
|
|
tempTip.setDuration(200)
|
|
|
tempTip.show(error)
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+ certiimg(id){
|
|
|
+ $('#'+id+'input').click();
|
|
|
+ },
|
|
|
+ submitFile(e,trackOrder){
|
|
|
+ let file=e.target.files[0]
|
|
|
+ if (file.size >=5242880){
|
|
|
+ tempTip.setDuration(3000);
|
|
|
+ tempTip.show("图片大小不能超过5MB!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let _this=this;
|
|
|
+ let formData=new FormData();
|
|
|
+ formData.append("file",file);
|
|
|
+ formData.append("id",trackOrder.id);
|
|
|
+ formData.append("order_client_code",trackOrder.order_client_code);
|
|
|
+ axios.post('{{url('order/tracking/upload')}}',formData).then(function(response){
|
|
|
+ tempTip.setDuration(2000)
|
|
|
+ if(response.data.success){
|
|
|
+ _this.trackOrders.forEach(function(_trackOrder){
|
|
|
+ if(_trackOrder.order_client_code === response.data.data.table_id){
|
|
|
+ _trackOrder.upload_file=response.data.data;
|
|
|
+ setTimeout(function () {
|
|
|
+ _this.imgs.push(document.getElementById('img_'+_trackOrder.id));
|
|
|
+ _this.lazy();
|
|
|
+ },1);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(_this.imgs);
|
|
|
+ tempTip.showSuccess('上传成功!')
|
|
|
+ }else{
|
|
|
+ tempTip.show(response.data.error)
|
|
|
+ }
|
|
|
+ }).catch(function(error){
|
|
|
+ tempTip.setDuration(2000)
|
|
|
+ tempTip.show(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ lazy(){
|
|
|
+ //可视区域高度
|
|
|
+ let height=window.innerHeight;
|
|
|
+ //滚动区域高度
|
|
|
+ let scrollHeight = document.documentElement.scrollTop || document.body.scrollTop;
|
|
|
+ let _this=this;
|
|
|
+ this.imgs.forEach(function (img,i) {
|
|
|
+ if ((height+scrollHeight)>$('#'+img.getAttribute('id')).offset().top && img.getAttribute('data-src')){
|
|
|
+ let temp=new Image();
|
|
|
+ temp.src=img.getAttribute('data-src');
|
|
|
+ temp.onload=function () {
|
|
|
+ img.src=img.getAttribute('data-src');
|
|
|
+ _this.$delete(_this.imgs,i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ removeCommonImg(id) {
|
|
|
+ $('#'+id).remove();
|
|
|
+ },
|
|
|
+ commonImg(id,trackOrder){
|
|
|
+ let url = trackOrder.upload_file ? trackOrder.upload_file.url :"";
|
|
|
+ let type = trackOrder.upload_file ? trackOrder.upload_file.type :'';
|
|
|
+ $('#'+id).after(
|
|
|
+ "<div id=\"common_"+id+"\" style='position: absolute;padding-top: 2px;z-index: 99'>" +
|
|
|
+ "<div style='position:absolute'>"+
|
|
|
+ "<div >"+
|
|
|
+ "<a target='_blank' href='"+url+'-bulky.'+type+"'>" +
|
|
|
+ "<img src='"+url+"-common."+type+"'"+"style='position: relative;left:-50px;' >" +
|
|
|
+ "</a>" +
|
|
|
+ "</div>"+
|
|
|
+ @can('订单管理-跟踪-仓库编辑')"<button type='button' class='btn btn-sm btn-danger' onclick='tracking_vue.btnDeleteImg(this)' value='"+id+"' style='position: relative;float: right;margin-right: 51px;margin-top: -30px;' >删除</button>" +@endcan
|
|
|
+ "</div>"+
|
|
|
+ "</div>");
|
|
|
+ },
|
|
|
+ btnDeleteImg(e){
|
|
|
+ let idstr = $(e).val()
|
|
|
+ let id = idstr.substr(idstr.indexOf('_')+1)
|
|
|
+ if (!confirm('确定要删除所选图片吗?'))return;
|
|
|
+ this.destroyImg([id]);
|
|
|
+ },
|
|
|
+ destroyImg(id){
|
|
|
+ let _this = this
|
|
|
+ let data = {id:id}
|
|
|
+ axios.post('{{url('order/tracking/destroyImg')}}',data).then(function(response){
|
|
|
+ tempTip.setDuration(2000)
|
|
|
+ if(response.data.success){
|
|
|
+ tempTip.showSuccess('删除成功!')
|
|
|
+ let _orderTracking = _this.trackOrders.find(function(_orderTrack){
|
|
|
+ return id ==_orderTrack.id;
|
|
|
+ });
|
|
|
+ if(_orderTracking===null){return}
|
|
|
+ _this.trackOrders.forEach(function (_orderTrack) {
|
|
|
+ if(_orderTrack.order_client_code === _orderTracking.order_client_code){
|
|
|
+ if(_orderTrack.upload_file)
|
|
|
+ _orderTrack.upload_file = null
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ tempTip.show(response.data.error)
|
|
|
+ }
|
|
|
+ }).catch(function(error){
|
|
|
+ tempTip.setDuration(2000)
|
|
|
+ tempTip.show(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
},
|
|
|
filters:{
|
|
|
millimeterToCubic:function(val){
|