|
|
@@ -10,22 +10,40 @@
|
|
|
<div id="form_div"></div>
|
|
|
<div class="form-inline" id="btn">
|
|
|
@can('包裹管理-快递-异常类型-编辑')
|
|
|
- <select class="form-control-sm" v-model="batchExceptionType">
|
|
|
- <option v-for="(value,index) in exception_types" :value="value"
|
|
|
- :name="value" :key="index">@{{ value }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- <button @click="batchExceptionTypeUpdate()" type="button"
|
|
|
- class="btn btn-sm ml-2 btn-outline-primary">批量异常状态修改
|
|
|
- </button>
|
|
|
- <select class="form-control-sm ml-2" v-model="batchStatus">
|
|
|
- <option v-for="(value,index) in statuses" :value="value"
|
|
|
- :name="value" :key="index">@{{ value }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- <button @click="batchStatusUpdate()" type="button"
|
|
|
- class="btn btn-sm ml-2 btn-outline-danger">批量状态修改
|
|
|
- </button>
|
|
|
+ <span class="dropdown ml-1">
|
|
|
+ <button type="button"
|
|
|
+ class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
|
|
|
+ data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">导出Excel
|
|
|
+ </button>
|
|
|
+ <div class="dropdown-menu">
|
|
|
+ <a class="dropdown-item" @click="orderPackageExport(false)" href="javascript:">导出勾选内容</a>
|
|
|
+ <a class="dropdown-item" @click="orderPackageExport(true)" href="javascript:">导出所有页</a>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ <span class="ml-1">
|
|
|
+ <select class="form-control-sm" v-model="batchExceptionType">
|
|
|
+ <option v-for="(value,index) in exception_types" :value="value"
|
|
|
+ :name="value" :key="index">@{{ value }}
|
|
|
+ </option>
|
|
|
+ </select>
|
|
|
+ <button @click="batchExceptionTypeUpdate()" type="button"
|
|
|
+ class="btn btn-sm ml-2 btn-outline-primary">批量异常状态修改
|
|
|
+ </button>
|
|
|
+ </span>
|
|
|
+ <span class="ml-1">
|
|
|
+ <select class="form-control-sm ml-2" v-model="batchStatus">
|
|
|
+ <option v-for="(value,index) in statuses" :value="value"
|
|
|
+ :name="value" :key="index">@{{ value }}
|
|
|
+ </option>
|
|
|
+ </select>
|
|
|
+ <button @click="batchStatusUpdate()" type="button"
|
|
|
+ class="btn btn-sm ml-2 btn-outline-danger">批量状态修改
|
|
|
+ </button>
|
|
|
+ </span>
|
|
|
+ <span class="ml-1">
|
|
|
+ <button type="button" class="btn btn-outline-dark btn-sm form-control-sm tooltipTarget"
|
|
|
+ @click="copyLogisticNumber" style="background: #dad7e8;">复制快递单号</button>
|
|
|
+ </span>
|
|
|
@endcan
|
|
|
</div>
|
|
|
<table class="table table-striped table-sm text-nowrap table-hover" id="table">
|
|
|
@@ -34,7 +52,8 @@
|
|
|
<td>
|
|
|
<input class="checkItem" type="checkbox" :value="package.logistic_number">
|
|
|
</td>
|
|
|
- <td><span>@{{ i+1 }} <span class="badge badge-danger" v-if="package.order.issue">问题件</span></span></td>
|
|
|
+ <td><span>@{{ i+1 }} <span class="badge badge-danger" v-if="package.order.issue">问题件</span></span>
|
|
|
+ </td>
|
|
|
<td>
|
|
|
<select class="form-control-sm" v-model="package.exception_type"
|
|
|
@change="package.showEditButton = true">
|
|
|
@@ -74,28 +93,30 @@
|
|
|
</label>
|
|
|
</div>
|
|
|
</td>
|
|
|
- <td @mouseover="remarkHover = package.id" @mouseleave="remarkHover=null;remark=null;isShowRemarkInput = false">
|
|
|
+ <td @mouseover="remarkHover = package.id"
|
|
|
+ @mouseleave="remarkHover=null;remark=null;isShowRemarkInput = false">
|
|
|
@can('包裹管理-快递-客服备注')
|
|
|
- <button @click="isShowRemarkInput = true" v-if="remarkHover===package.id">新增</button>
|
|
|
- <input @keydown.enter="submitRemark(package)" v-if="isShowRemarkInput && remarkHover===package.id" type="text" v-model="remark">
|
|
|
- <div v-if="package.remark && package.remark.length>0" :id="'remark-'+i">
|
|
|
- <div v-if="showRemarkList[i]" class="text-overflow-warp-200 up" >
|
|
|
- <p v-for="remark_item in package.remark">
|
|
|
- @{{ remark_item }}
|
|
|
- </p>
|
|
|
+ <button @click="isShowRemarkInput = true" v-if="remarkHover===package.id">新增</button>
|
|
|
+ <input @keydown.enter="submitRemark(package)"
|
|
|
+ v-if="isShowRemarkInput && remarkHover===package.id" type="text" v-model="remark">
|
|
|
+ <div v-if="package.remark && package.remark.length>0" :id="'remark-'+i">
|
|
|
+ <div v-if="showRemarkList[i]" class="text-overflow-warp-200 up">
|
|
|
+ <p v-for="remark_item in package.remark">
|
|
|
+ @{{ remark_item }}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <div class="text-overflow-warp-200" v-else>
|
|
|
+ @{{ package.remark[0] }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="text-overflow-warp-200" v-else>
|
|
|
- @{{ package.remark[0] }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div @click="showRemarkItem(i)" v-if="package.remark && package.remark.length > 1">
|
|
|
- <label class="text-center mt-0 p-0 cursor-pointer pull-left">
|
|
|
+ <div @click="showRemarkItem(i)" v-if="package.remark && package.remark.length > 1">
|
|
|
+ <label class="text-center mt-0 p-0 cursor-pointer pull-left">
|
|
|
<span class="fa"
|
|
|
:class="package.isShowRemark ? 'fa-angle-double-down' : 'fa-angle-double-right'"></span>
|
|
|
- <span v-if="package.remark && showRemarkList[i]">收起</span><span
|
|
|
- v-else>展开</span> @{{ package.remark.length }} 条
|
|
|
- </label>
|
|
|
- </div>
|
|
|
+ <span v-if="package.remark && showRemarkList[i]">收起</span><span
|
|
|
+ v-else>展开</span> @{{ package.remark.length }} 条
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
@endcan
|
|
|
</td>
|
|
|
<td class="text-overflow-warp-200"><span v-if="package.order && package.order.issue">@{{ package.order.issue.result_explain }}</span>
|
|
|
@@ -117,10 +138,12 @@
|
|
|
<div class="text-info h5 btn btn">{{$orderPackages->count()}}/{{$orderPackages->total()}}</div>
|
|
|
{{$orderPackages->appends($paginateParams)->links()}}
|
|
|
</div>
|
|
|
+ <textarea id="clipboardDiv" style="opacity:0"></textarea>
|
|
|
</div>
|
|
|
@endsection
|
|
|
|
|
|
@section('lastScript')
|
|
|
+ <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
|
|
|
<script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
|
|
|
<script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
|
|
|
<script>
|
|
|
@@ -159,8 +182,8 @@
|
|
|
'无',
|
|
|
],
|
|
|
statuses: [
|
|
|
- '已揽收',
|
|
|
- '无',
|
|
|
+ '已揽收',
|
|
|
+ '无',
|
|
|
],
|
|
|
exception_editable: @can('包裹管理-快递-异常类型-编辑') true @else false @endcan,
|
|
|
selectedExceptionType: '修改异常类型',
|
|
|
@@ -280,31 +303,31 @@
|
|
|
});
|
|
|
_this.form.init();
|
|
|
let column = [
|
|
|
- {name:'index',value: '序号', neglect: true},
|
|
|
- {name:'exception_type',value: '异常类型'},
|
|
|
- {name:'logistic_number',value: '单号'},
|
|
|
- {name:'status',value: '状态'},
|
|
|
- {name:'logistic_name',value: '快递公司'},
|
|
|
- {name:'owner_name',value: '货主'},
|
|
|
- {name:'province',value: '省份'},
|
|
|
- {name:'sent_at',value: '发出日期'},
|
|
|
- {name:'received_at',value: '收货日期'},
|
|
|
- {name:'weighed_at',value: '称重日期'},
|
|
|
- {name:'transfer_status',value: '快递路由'},
|
|
|
- {name:'remark',value: '客服备注'},
|
|
|
- {name:'result_explain',value: '情况说明'},
|
|
|
- {name:'issue_type',value: '问题类别'},
|
|
|
- {name:'content',value: '说明'},
|
|
|
- {name:'operation_name',value: '操作者'},
|
|
|
- {name:'operation_date',value: '时间'},
|
|
|
+ {name: 'index', value: '序号', neglect: true},
|
|
|
+ {name: 'exception_type', value: '异常类型'},
|
|
|
+ {name: 'logistic_number', value: '单号'},
|
|
|
+ {name: 'status', value: '状态'},
|
|
|
+ {name: 'logistic_name', value: '快递公司'},
|
|
|
+ {name: 'owner_name', value: '货主'},
|
|
|
+ {name: 'province', value: '省份'},
|
|
|
+ {name: 'sent_at', value: '发出日期'},
|
|
|
+ {name: 'received_at', value: '收货日期'},
|
|
|
+ {name: 'weighed_at', value: '称重日期'},
|
|
|
+ {name: 'transfer_status', value: '快递路由'},
|
|
|
+ {name: 'remark', value: '客服备注'},
|
|
|
+ {name: 'result_explain', value: '情况说明'},
|
|
|
+ {name: 'issue_type', value: '问题类别'},
|
|
|
+ {name: 'content', value: '说明'},
|
|
|
+ {name: 'operation_name', value: '操作者'},
|
|
|
+ {name: 'operation_date', value: '时间'},
|
|
|
];
|
|
|
new Header({
|
|
|
el: "table",
|
|
|
- name:"package",
|
|
|
+ name: "package",
|
|
|
column: column,
|
|
|
data: this.packages,
|
|
|
restorationColumn: 'addtime',
|
|
|
- fixedTop:($('#form_div').height())+($('#btn').height())+1,
|
|
|
+ fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
|
|
|
}).init();
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -364,30 +387,54 @@
|
|
|
})
|
|
|
},
|
|
|
submitRemark(orderPackage) {
|
|
|
- if (this.remark===null){
|
|
|
+ if (this.remark === null) {
|
|
|
return
|
|
|
}
|
|
|
let url = '{{url('apiLocal/package/logistic/')}}';
|
|
|
let _this = this;
|
|
|
- axios.put(url,{remark:_this.remark,orderPackageId:orderPackage.id}).then(function (response) {
|
|
|
- if (response.data.success){
|
|
|
+ axios.put(url, {remark: _this.remark, orderPackageId: orderPackage.id}).then(function (response) {
|
|
|
+ if (response.data.success) {
|
|
|
orderPackage.remark = response.data.data
|
|
|
tempTip.setDuration(2000);
|
|
|
tempTip.showSuccess('成功!');
|
|
|
- } else{
|
|
|
+ } else {
|
|
|
tempTip.setDuration(5000);
|
|
|
tempTip.show(response.data.fail_info);
|
|
|
}
|
|
|
}).catch(function (err) {
|
|
|
tempTip.setDuration(3000);
|
|
|
- tempTip.show("网络错误:"+err)
|
|
|
+ tempTip.show("网络错误:" + err)
|
|
|
});
|
|
|
},
|
|
|
- {{--orderPackageExport(checkAllSign){--}}
|
|
|
- {{-- let url = '{{url('package/logistic/export')}}';--}}
|
|
|
- {{-- let token='{{ csrf_token() }}';--}}
|
|
|
- {{-- excelExport(checkAllSign,checkData,url,this.packages.length,token,{is_merge : this.is_merge});--}}
|
|
|
- {{--},--}}
|
|
|
+ copyLogisticNumber() {
|
|
|
+ if (checkData.length === 0) {
|
|
|
+ tempTip.show('没有勾选');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.copyText(checkData.join('\n'));
|
|
|
+ },
|
|
|
+ copyText(text) {
|
|
|
+ try {
|
|
|
+ $('#clipboardDiv').text(text).select().focus();
|
|
|
+ document.execCommand("Copy");
|
|
|
+ tempTip.setIndex(1052)
|
|
|
+ tempTip.setDuration(2000)
|
|
|
+ tempTip.showSuccess('复制成功')
|
|
|
+ } catch (e) {
|
|
|
+ tempTip.setIndex(1052)
|
|
|
+ tempTip.setDuration(2000)
|
|
|
+ tempTip.showSuccess('复制失败:' + e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ orderPackageExport(sign) {
|
|
|
+ let url = '{{url('package/logistic/export')}}';
|
|
|
+ let token = '{{ csrf_token() }}';
|
|
|
+ if (sign) {
|
|
|
+ excelExport(true, checkData, url, this.total, token);
|
|
|
+ } else {
|
|
|
+ excelExport(false, checkData, url, null, token);
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
filters: {
|
|
|
toObjected: function (value) {
|