|
|
@@ -8,11 +8,12 @@
|
|
|
@component('transport.discharge.menu')@endcomponent
|
|
|
</nav>
|
|
|
<div id="list" class="d-none container-fluid">
|
|
|
- <div id="form_div"></div>
|
|
|
+ <div id="form_div" style="min-width: 2250px"></div>
|
|
|
|
|
|
- <div class="form-inline mt-1" id = "btn">
|
|
|
+ <div class="form-inline mt-1" id="btn">
|
|
|
<span class="dropdown">
|
|
|
- <button type="button" class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget" :class="[checkData.length>0?'btn-dark text-light':'']"
|
|
|
+ <button type="button" class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
|
|
|
+ :class="[checkData.length>0?'btn-dark text-light':'']"
|
|
|
data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">导出Excel
|
|
|
</button>
|
|
|
<div class="dropdown-menu">
|
|
|
@@ -21,7 +22,8 @@
|
|
|
</div>
|
|
|
</span>
|
|
|
<span class="ml-1">
|
|
|
- <button type="button" class="btn btn-outline-dark btn-sm form-control-sm tooltipTarget" @click="showCreateTaskModal(true)" style="background: #dad7e8;">创建任务</button>
|
|
|
+ <button type="button" class="btn btn-outline-dark btn-sm form-control-sm tooltipTarget"
|
|
|
+ @click="showCreateTaskModal(true)" style="background: #dad7e8;">创建任务</button>
|
|
|
</span>
|
|
|
</div>
|
|
|
@include('transport.discharge.task._table')
|
|
|
@@ -35,49 +37,75 @@
|
|
|
<script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
|
|
|
<script>
|
|
|
let dischargeTaskVue = new Vue({
|
|
|
- el:"#list",
|
|
|
- data:{
|
|
|
- dischargeTasks:{!! $dischargeTasks->toJson()!!}['data'],
|
|
|
+ el: "#list",
|
|
|
+ data: {
|
|
|
+ dischargeTasks: {!! $dischargeTasks->toJson()!!}['data'],
|
|
|
owners:{!! $owners !!},
|
|
|
- ownerFilter:[],
|
|
|
- addTask:{},
|
|
|
- isUpdate:false,
|
|
|
- checkData:[],
|
|
|
- selectIndex:'',
|
|
|
- taskTypes:[
|
|
|
- {name:0,value:"装车"},
|
|
|
- {name:1,value:"卸车"},
|
|
|
+ ownerFilter: [],
|
|
|
+ dischargeProviders:{!! $dischargeProviders !!},
|
|
|
+ dischargeProvidersFilter: [],
|
|
|
+ addTask: {},
|
|
|
+ executingTack: {},
|
|
|
+
|
|
|
+ taskTypes: [
|
|
|
+ {name: 0, value: "装车"},
|
|
|
+ {name: 1, value: "卸车"},
|
|
|
+ ],
|
|
|
+ units: [
|
|
|
+ {name: 0, value: 'm3'},
|
|
|
+ {name: 1, value: '吨'},
|
|
|
+ {name: 2, value: '件'},
|
|
|
+ {name: 3, value: '托'},
|
|
|
],
|
|
|
- units:[
|
|
|
- {name:0,value:'m<sup>3</sup>'},
|
|
|
- {name:1,value:'吨'},
|
|
|
- {name:2,value:'件'},
|
|
|
- {name:3,value:'托'},
|
|
|
+ status: [
|
|
|
+ {name: '0', value: '创建'},
|
|
|
+ {name: '1', value: '接单'},
|
|
|
+ {name: '2', value: '作业'},
|
|
|
+ {name: '3', value: '完成'},
|
|
|
],
|
|
|
- status:[
|
|
|
- {name:'0',value:'创建'},
|
|
|
- {name:'1',value:'接单'},
|
|
|
- {name:'2',value:'作业'},
|
|
|
- {name:'3',value:'完成'},
|
|
|
- ]
|
|
|
+ isUpdate: false,
|
|
|
+ checkData: [],
|
|
|
+ selectIndex: '',
|
|
|
},
|
|
|
created() {
|
|
|
- this.owners.forEach(function(owner,index,array){
|
|
|
+ this.owners.forEach(function (owner, index, array) {
|
|
|
array[index] = {
|
|
|
- id:owner.id,
|
|
|
- name:owner.name,
|
|
|
+ name: owner.id,
|
|
|
+ value: owner.name,
|
|
|
};
|
|
|
});
|
|
|
this.ownerFilter = JSON.parse(JSON.stringify(this.owners));
|
|
|
+ this.dischargeProvidersFilter = JSON.parse(JSON.stringify(this.dischargeProviders));
|
|
|
},
|
|
|
mounted() {
|
|
|
$('#list').removeClass('d-none');
|
|
|
- $(".tooltipTarget").tooltip({'trigger':'hover'});
|
|
|
+ $(".tooltipTarget").tooltip({'trigger': 'hover'});
|
|
|
+ // 货主 创建日期 入库单号 状态 入库备注
|
|
|
+ let _this = this;
|
|
|
+ let data = [[
|
|
|
+ {
|
|
|
+ name: 'owner_id', type: 'select_multiple_select', tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的客户'],
|
|
|
+ placeholder: ['货主', '定位或多选货主'],
|
|
|
+ data: _this.owners
|
|
|
+ },
|
|
|
+ {name: 'created_at_start', type: 'dateTime', tip: '创建开始日期'},
|
|
|
+ {name: 'created_at_end', type: 'dateTime', tip: '创建结束日期'},
|
|
|
+ {name: 'numbers', type: 'input', tip: '入库单号',placeholder:'入库单号'},
|
|
|
+ {name: 'status', type: 'select', tip: '状态' , data: _this.status,placeholder:'状态'},
|
|
|
+ {name: 'income_remark', type: 'input', tip: '备注' , data: _this.status,placeholder:'备注'}
|
|
|
+ ]];
|
|
|
+ this.form = new query({
|
|
|
+ el: '#form_div',
|
|
|
+ condition: data,
|
|
|
+ appendDom : "btn",
|
|
|
+ paginations:[ 50, 100, 200, 500,1000,20],
|
|
|
+ })
|
|
|
+ this.form.init();
|
|
|
},
|
|
|
- watch:{
|
|
|
+ watch: {
|
|
|
checkData: {
|
|
|
handler() {
|
|
|
- if (this.checkData.length === this.dischargeTask.length) {
|
|
|
+ if (this.checkData.length === this.dischargeTasks.length) {
|
|
|
document.querySelector('#selectAll').checked = true;
|
|
|
} else {
|
|
|
document.querySelector('#selectAll').checked = false;
|
|
|
@@ -86,142 +114,173 @@
|
|
|
deep: true
|
|
|
},
|
|
|
},
|
|
|
- methods:{
|
|
|
- getUnit(type){
|
|
|
+ methods: {
|
|
|
+ getUnit(type) {
|
|
|
let unit = ''
|
|
|
- this.units.forEach(function(item){
|
|
|
- if(item.name==type) unit = item.value;
|
|
|
+ this.units.forEach(function (item) {
|
|
|
+ if (item.name === type) unit = item.value;
|
|
|
});
|
|
|
return unit;
|
|
|
},
|
|
|
- getType(value){
|
|
|
+ getType(value) {
|
|
|
let type = ''
|
|
|
- this.taskTypes.forEach(function(item){
|
|
|
- if(item.name==value) type = item.value;
|
|
|
+ this.taskTypes.forEach(function (item) {
|
|
|
+ if (item.name === value) type = item.value;
|
|
|
});
|
|
|
return type;
|
|
|
},
|
|
|
- getStatus(value){
|
|
|
+ getStatus(value) {
|
|
|
let status = '';
|
|
|
- this.status.forEach(function(item){
|
|
|
- if(item.name==value) status=item.value;
|
|
|
+ this.status.forEach(function (item) {
|
|
|
+ if (item.name === value) status = item.value;
|
|
|
})
|
|
|
return status;
|
|
|
},
|
|
|
checkAll(e) {
|
|
|
- if(!e.target.checked)this.checkData = [];
|
|
|
- else{
|
|
|
+ if (!e.target.checked) this.checkData = [];
|
|
|
+ else {
|
|
|
this.dischargeTasks.forEach((el, i) => {
|
|
|
if (this.checkData.indexOf(el.id) === -1) this.checkData.push(el.id);
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- showCreateTaskModal(isDisplay){
|
|
|
- if(isDisplay)$("#createdModal").modal('show');
|
|
|
+ // 创建任务 modal
|
|
|
+ showCreateTaskModal(isDisplay) {
|
|
|
+ if (isDisplay) $("#createdModal").modal('show');
|
|
|
else {
|
|
|
this.isUpdate = false;
|
|
|
$("#createdModal").modal('hide');
|
|
|
}
|
|
|
},
|
|
|
- showExecutingTaskModal(isDisplay,task){
|
|
|
+ // 执行任务 modal
|
|
|
+ showExecutingTaskModal(index, isDisplay, task) {
|
|
|
this.updateTask = task;
|
|
|
- if(isDisplay){
|
|
|
- this.isUpdate = true;
|
|
|
+ this.selectIndex = index;
|
|
|
+ if (isDisplay) {
|
|
|
$("#executingTaskModal").modal('show');
|
|
|
- } else{
|
|
|
+ } else {
|
|
|
this.isUpdate = false;
|
|
|
+ this.selectIndex = null;
|
|
|
$("#executingTaskModal").modal('hide');
|
|
|
}
|
|
|
},
|
|
|
- showUpdateTaskModal(index,isDisplay,task){
|
|
|
+ // 编辑任务 modal
|
|
|
+ showUpdateTaskModal(index, isDisplay, task) {
|
|
|
this.isUpdate = true;
|
|
|
this.selectIndex = index;
|
|
|
this.addTask = JSON.parse(JSON.stringify(task));
|
|
|
this.showCreateTaskModal(isDisplay)
|
|
|
},
|
|
|
- createTask(index){
|
|
|
- if(this.isUpdate){
|
|
|
+ // 创建任务
|
|
|
+ createTask(index) {
|
|
|
+ if (this.isUpdate) {
|
|
|
this.updateCurrentTask(index);
|
|
|
return
|
|
|
}
|
|
|
- // 创建任务
|
|
|
+ this.addTask['income_total_cost'] = Number(this.addTask['income_unit_price']) * Number(this.addTask.income_amount);
|
|
|
+ this.addTask['status'] = 0;
|
|
|
let url = '{{url('apiLocal/transport/discharge/task/storeApi')}}';
|
|
|
tempTip.setDuration(2000);
|
|
|
- tempTip.setIndex(99);
|
|
|
- axios.post(url,this.addTask).then(res=>{
|
|
|
- if(res.data.success){
|
|
|
+ tempTip.setIndex(999);
|
|
|
+ axios.post(url, this.addTask).then(res => {
|
|
|
+ if (res.data.success) {
|
|
|
+ tempTip.showSuccess("添加卸货任务成功")
|
|
|
this.dischargeTasks.unshift(res.data.data);
|
|
|
+ this.showCreateTaskModal(false);
|
|
|
this.addTask = {};
|
|
|
return
|
|
|
}
|
|
|
- }).catch(err=>{
|
|
|
+ tempTip.show(res.data.message ? res.data.message : '添加卸货任务失败');
|
|
|
+ }).catch(err => {
|
|
|
tempTip.show(err);
|
|
|
});
|
|
|
},
|
|
|
- executedTask(dischargeTask,index){
|
|
|
- // 执行任务
|
|
|
+ // 执行任务
|
|
|
+ executedTask(dischargeTask, index) {
|
|
|
let url = '{{url('apiLocal/transport/discharge/task/updateTaskProviderApi')}}';
|
|
|
+ tempTip.setDuration(2000);
|
|
|
+ tempTip.setIndex(999);
|
|
|
+ dischargeTask['income_total_cost'] = Number(dischargeTask['income_unit_price']) * dischargeTask(dischargeTask['income_amount']);
|
|
|
+ dischargeTask['status'] = 1;
|
|
|
+ axios.post(url, dischargeTask).then(res => {
|
|
|
+ if (res.data.success) {
|
|
|
+ this.$set(dischargeTask, index, res.data.data);
|
|
|
+ tempTip.showSuccess("任务操作成功");
|
|
|
+ this.selectIndex = null;
|
|
|
+ this.executingTack = {};
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ tempTip.show(res.data.message ? res.data.message : '任务操作失败');
|
|
|
+ }).catch(err => {
|
|
|
+ tempTip.show(err);
|
|
|
+ })
|
|
|
},
|
|
|
- updateCurrentTask(){
|
|
|
+ // 编辑当前任务
|
|
|
+ updateCurrentTask() {
|
|
|
// 更新
|
|
|
let url = '{{url('apiLocal/transport/discharge/task/updateTaskProviderApi')}}';
|
|
|
tempTip.setDuration(2000);
|
|
|
tempTip.setIndex(99);
|
|
|
- axios.post(url,this.addTask).then(res=>{
|
|
|
- if(res.data.success){
|
|
|
- this.$set(this.dischargeTasks,this.selectIndex,res.data.data);
|
|
|
+ axios.post(url, this.addTask).then(res => {
|
|
|
+ if (res.data.success) {
|
|
|
+ this.$set(this.dischargeTasks, this.selectIndex, res.data.data);
|
|
|
tempTip.showSuccess("订单修改成功")
|
|
|
+ this.addTask = {};
|
|
|
+ this.selectIndex = null;
|
|
|
return;
|
|
|
}
|
|
|
tempTip.show(res.data.message)
|
|
|
- }).catch(err=>{
|
|
|
+ }).catch(err => {
|
|
|
tempTip.show(err);
|
|
|
});
|
|
|
- this.selectIndex = null,
|
|
|
+ this.selectIndex = null;
|
|
|
},
|
|
|
- deleteTask(index,dischargeTask){
|
|
|
- // 删除
|
|
|
- if(!confirm("是否删除当前任务")){
|
|
|
+ // 删除当前任务
|
|
|
+ deleteTask(index, dischargeTask) {
|
|
|
+ if (!confirm("是否删除当前任务")) {
|
|
|
return
|
|
|
}
|
|
|
let url = '{{url('apiLocal/transport/discharge/task/deleteApi')}}';
|
|
|
tempTip.setDuration(2000);
|
|
|
tempTip.setIndex(99);
|
|
|
- axios.post(url,{id:dischargeTask.id}).then(res=>{
|
|
|
- if(res.data.success){
|
|
|
- this.$delete(this.dischargeTasks,index);
|
|
|
+ axios.post(url, {id: dischargeTask.id}).then(res => {
|
|
|
+ if (res.data.success) {
|
|
|
+ this.$delete(this.dischargeTasks, index);
|
|
|
tempTip.showSuccess('删除成功')
|
|
|
return
|
|
|
}
|
|
|
- tempTip.show('删除失败!'+res.data.data)
|
|
|
- }).catch(err=>{
|
|
|
+ tempTip.show('删除失败!' + res.data.data)
|
|
|
+ }).catch(err => {
|
|
|
tempTip.show(err);
|
|
|
});
|
|
|
},
|
|
|
- dischargeTaskExport(isExportAll){
|
|
|
- // 下载
|
|
|
- let url = '{{url('transport/discharge/task/export')}}';
|
|
|
- let token='{{ csrf_token() }}';
|
|
|
- excelExport(isExportAll,this.checkData,url,this.sum,token);
|
|
|
- },
|
|
|
- orderIssueExport(sign) {
|
|
|
+ // 下载
|
|
|
+ dischargeTaskExport(isExportAll) {
|
|
|
let url = '{{url('transport/discharge/task/export')}}';
|
|
|
let token = '{{ csrf_token() }}';
|
|
|
- if (sign) {
|
|
|
- excelExport(true, this.checkData, url, this.total, token);
|
|
|
- } else {
|
|
|
- excelExport(false, this.checkData, url, null, token);
|
|
|
- }
|
|
|
+ excelExport(isExportAll, this.checkData, url, this.sum, token);
|
|
|
},
|
|
|
- filterOwner(e){
|
|
|
+ // 筛选货主
|
|
|
+ filterOwner(e) {
|
|
|
let value = $(e.target).val();
|
|
|
- if(value==='')this.ownerFilter = JSON.parse(JSON.stringify(this.owners));
|
|
|
- else{
|
|
|
- this.ownerFilter = this.owners.filter(function(owner){
|
|
|
+ if (value === '') this.ownerFilter = JSON.parse(JSON.stringify(this.owners));
|
|
|
+ else {
|
|
|
+ this.ownerFilter = this.owners.filter(function (owner) {
|
|
|
return owner.name.indexOf(value) !== -1;
|
|
|
});
|
|
|
}
|
|
|
+ },
|
|
|
+ // 筛选服务商
|
|
|
+ filterProviders(e) {
|
|
|
+ let value = $(e.target).val();
|
|
|
+ if (value === '') this.dischargeProvidersFilter = JSON.parse(JSON.stringify(this.dischargeProviders));
|
|
|
+ else {
|
|
|
+ this.dischargeProvidersFilter = this.dischargeProviders.filter(function (providers) {
|
|
|
+ return providers.name.indexOf(value) !== -1;
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
})
|
|
|
</script>
|