Commit de689fa6 by 吕海涛

修改bug

parent 9b223baa
import {post, get} from "@/request/http";
import { post, get } from "@/request/http";
/*
*获取订单详情
*/
export function getOrderInfoApi(u, data) {
const url = u +'/xoado/order/select';
return post(url, data)
const url = u + '/xoado/order/select';
return post(url, data)
}
/*
*删除订单
*/
export function delDispatchDataApi(id) {
const url = process.env.VUE_APP_BASE_API6 +`/orderUnIfyReceipt/delDispatchData/${id}`;
return get(url, {})
const url = process.env.VUE_APP_BASE_API6 + `/orderUnIfyReceipt/delDispatchData/${id}`;
return get(url, {})
}
/*
*获取运单详情
*/
export function getWaybillInfoApi(data) {
const url = process.env.VUE_APP_BASE_API6 +'/new/waybill/obj';
return get(url, data)
const url = process.env.VUE_APP_BASE_API6 + '/new/waybill/obj';
return get(url, data)
}
/*
*获取商户订单
*/
export function paymentRecordApi(data) {
const url = process.env.VUE_APP_BASE_API6 +'/waybill/payment/record';
return get(url, data)
const url = process.env.VUE_APP_BASE_API6 + '/waybill/payment/record';
return get(url, data)
}
/*
*获取商户订单
*/
export function pushDriverApi(u, data) {
const url = u +'/xoado/order/pushDriver';
return get(url, data)
export function pushDriverApi(data) {
const url = process.env.VUE_APP_BASE_API6 + '/new/waybill/pushDriverToBrand/waybillId';
return post(url, data)
}
/*
*运单强制完单
*/
export function forceFinishApi(data) {
const url = process.env.VUE_APP_BASE_API6 +'/temporaryDispatch/forceFinish';
return get(url, data)
}
const url = process.env.VUE_APP_BASE_API6 + '/temporaryDispatch/forceFinish';
return get(url, data)
}
\ No newline at end of file
......@@ -19,8 +19,8 @@ export function updateBatchOrder(data) {
/*
*推送司机信息
*/
export function pushDriver(data) {
const url = process.env.VUE_APP_BASE_API5 + `/xoado/order/pushDriver`;
export function pushDriver(u, data) {
const url = u + '/xoado/order/pushDriver/orderId';
return post(url, data)
}
......
......@@ -34,6 +34,14 @@ const getters = {
return []
}
},
orderDetail: state => {
let arr = Object.keys(state.business.orderDetail);
if (arr.length > 0) {
return JSON.parse(state.business.orderDetail)
} else {
return {}
}
},
areaCodeObj: state => {
let arr = Object.keys(state.business.areaCodeObj);
if (arr.length > 0) {
......
......@@ -130,6 +130,9 @@ export default {
}
},
created() {
console.log(this.searchInfo);
},
filters: {
preDate(v) {
......@@ -156,6 +159,7 @@ export default {
},
handledbClick(row) {
let search = this.searchInfo;
this.$store.commit('business/SET_ORDERDETAIL', JSON.stringify({brandUrl: search.brandUrl, platformId: JSON.parse(search.platformId).platformId}));
this.$router.push({path: '/business/complaint-detail', query: {id: row.complaintId, orderId: row.orderId}})
},
......
<template>
<div style="padding-left: 5px;border-radius: 5px;position:relative;background-color: #ffffff;">
<el-row style="background-color: #ffffff;padding: 10px 0 0 20px;">
<el-radio-group v-model="form.platformId" @change="changePlatform">
<el-radio-button
v-for="(item, index) in brandLists"
:label="item.id"
:key="'platformId'+index"
>
{{ item.name }}
</el-radio-button>
</el-radio-group>
</el-row>
<el-tabs style="padding-left: 20px;" v-model="form.runType" type="card" @tab-click="handleClick">
<el-tab-pane
style="padding: 0 10px;"
v-for="(item, index) in tabs"
:key="index"
:label="item.label"
:name="item.runType">
</el-tab-pane>
</el-tabs>
<div
style="
padding-left: 5px;
border-radius: 5px;
position: relative;
background-color: #ffffff;
"
>
<el-row style="background-color: #ffffff; padding: 10px 0 0 20px">
<el-radio-group v-model="form.platformId" @change="changePlatform">
<el-radio-button
v-for="(item, index) in brandLists"
:label="item.id"
:key="'platformId' + index"
>
{{ item.name }}
</el-radio-button>
</el-radio-group>
</el-row>
<el-tabs
style="padding-left: 20px"
v-model="form.runType"
type="card"
@tab-click="handleClick"
>
<el-tab-pane
style="padding: 0 10px"
v-for="(item, index) in tabs"
:key="index"
:label="item.label"
:name="item.runType"
>
</el-tab-pane>
</el-tabs>
<el-card shadow="never">
<el-form :inline="true" v-model="form">
<el-row class="row-d">
<el-col :span="8">
<el-input style="max-width: 300px;" placeholder="请输入手机号/运单编号/订单编号"
v-model="form.orderInfo"></el-input>
</el-col>
<el-col :span="8">
<Selects :options="dataSource.localTransportId"
:selectName="'承接运力:'"
:type="'transportIds'"
@changeList="handlechangeList"></Selects>
</el-col>
<el-col :span="8" style="font-size: 14px;">
控诉时间:
<el-date-picker
style="max-width: 225px;margin-left: 11px;"
v-model="form.dateTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-col>
</el-row>
<el-row class="row-d">
<el-col :span="8">
<Selects :options="dataSource.complainCategory"
:selectName="'控诉类别:'"
:type="'complainCategory'"
@changeList="handlechangeList"></Selects>
</el-col>
<el-col :span="8">
<Selects :options="dataSource.complainWay"
:selectName="'控诉方式:'"
:type="'complainWay'"
@changeList="handlechangeList"></Selects>
</el-col>
<el-col :span="8">
<Selects :options="dataSource.orderSourceListNew"
:selectName="'订单来源:'"
:type="'orderSourceList'"
@changeList="handlechangeList"></Selects>
</el-col>
</el-row>
<el-row class="row-d">
<el-col :span="8">
<Selects :options="dataSource.processingStatus"
:selectName="'处理状态:'"
:type="'processingStatus'"
@changeList="handlechangeList"></Selects>
</el-col>
<el-col :span="8">
<el-button style="padding: 8px 20px;" type="primary" @click="searchByInfo">查询</el-button>
<el-button style="padding: 8px 20px;" type="primary" @click="exportB">批量导出excel</el-button>
</el-col>
</el-row>
</el-form>
<itemList ref="itemList" :searchInfo="form"></itemList>
</el-card>
</div>
<el-card shadow="never">
<el-form :inline="true" v-model="form">
<el-row class="row-d">
<el-col :span="8">
<el-input
style="max-width: 300px"
placeholder="请输入手机号/运单编号/订单编号"
v-model="form.orderInfo"
></el-input>
</el-col>
<el-col :span="8">
<Selects
:options="dataSource.localTransportId"
:selectName="'承接运力:'"
:type="'transportIds'"
@changeList="handlechangeList"
></Selects>
</el-col>
<el-col :span="8" style="font-size: 14px">
控诉时间:
<el-date-picker
style="max-width: 225px; margin-left: 11px"
v-model="form.dateTime"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-col>
</el-row>
<el-row class="row-d">
<el-col :span="8">
<Selects
:options="dataSource.complainCategory"
:selectName="'控诉类别:'"
:type="'complainCategory'"
@changeList="handlechangeList"
></Selects>
</el-col>
<el-col :span="8">
<Selects
:options="dataSource.complainWay"
:selectName="'控诉方式:'"
:type="'complainWay'"
@changeList="handlechangeList"
></Selects>
</el-col>
<el-col :span="8">
<Selects
:options="dataSource.orderSourceListNew"
:selectName="'订单来源:'"
:type="'orderSourceList'"
@changeList="handlechangeList"
></Selects>
</el-col>
</el-row>
<el-row class="row-d">
<el-col :span="8">
<Selects
:options="dataSource.processingStatus"
:selectName="'处理状态:'"
:type="'processingStatus'"
@changeList="handlechangeList"
></Selects>
</el-col>
<el-col :span="8">
<el-button
style="padding: 8px 20px"
type="primary"
@click="searchByInfo"
>查询</el-button
>
<el-button style="padding: 8px 20px" type="primary" @click="exportB"
>批量导出excel</el-button
>
</el-col>
</el-row>
</el-form>
<itemList ref="itemList" :searchInfo="form"></itemList>
</el-card>
</div>
</template>
<script>
import Selects from '@/components/Selects'
import JudgeType from '@/mixins/judgeType'
import {exportComplaint} from "@/port/complaint/complaint";
import {Loading} from "element-ui";
import itemList from "./components/item"
import {platformInfosList} from "@/port/platfrom/setting";
import {getAllTransport} from "@/port/set-request";
import Selects from "@/components/Selects";
import JudgeType from "@/mixins/judgeType";
import { exportComplaint } from "@/port/complaint/complaint";
import { Loading } from "element-ui";
import itemList from "./components/item";
import { platformInfosList } from "@/port/platfrom/setting";
import { getAllTransport } from "@/port/set-request";
import dataSource from "@/libs/screen";
import {mapGetters} from "vuex";
import { mapGetters } from "vuex";
export default {
name: "index",
components: {
itemList,
Selects
},
computed: {
...mapGetters(['platformId']),
brandLists() {
let brandList = this.$store.getters.brandList;
name: "index",
components: {
itemList,
Selects,
},
computed: {
...mapGetters(["platformId"]),
brandLists() {
let brandList = this.$store.getters.brandList;
if(brandList.length === 0) {
return new Promise(() =>{
this.$store.dispatch('business/getBrandList')
})
brandList = this.$store.getters.brandList;
}
brandList = brandList.filter(item => {
return item.brandUrl
})
brandList = brandList.map(item => {
return {
id: JSON.stringify(item),
name: item.brandName
}
})
return brandList;
}
},
watch: {
async brandLists(v){
if(v.length > 0) {
this.getPlatformInfo();
this.getTransport();
}
}
},
mixins: [JudgeType],
data() {
if (brandList.length === 0) {
return new Promise(() => {
this.$store.dispatch("business/getBrandList");
});
brandList = this.$store.getters.brandList;
}
brandList = brandList.filter((item) => {
return item.brandUrl;
});
brandList = brandList.map((item) => {
return {
form: {
orderInfo: '',
dateTime: [],
platformId: '',
orderSourceList: dataSource.applyOrderSourceList,
complainWay: ['1', '2'],
complainCategory: ['1', '2'],
processingStatus: ['0', '1', '2'],
transportIds: [],
brandUrl: '',
runType: '1'
},
dataSource: dataSource,
platformList: [],
tabs: [
{label: '同城打车', runType: '1'},
{label: '跨城约车', runType: '2'},
{label: '接送用车', runType: '3'},
{label: '包车', runType: '6'},
{label: '货运', runType: '5'}
],
}
id: JSON.stringify(item),
name: item.brandName,
};
});
return brandList;
},
created() {
// this.getPlatformFun();
if(this.brandLists.length > 0) {
this.getPlatformInfo();
this.getTransport();
}
},
watch: {
async brandLists(v) {
if (v.length > 0) {
this.getPlatformInfo();
this.getTransport();
}
},
methods: {
getPlatformInfo() {
this.dataSource.localOrgId = this.brandLists;
this.form.platformId = this.brandLists.length > 0 ? this.brandLists[0].id : '';
this.brandUrl = this.brandLists.length > 0 ? JSON.parse(this.brandLists[0].id).brandUrl : '';
this.plat = this.brandLists.length > 0 ? JSON.parse(this.brandLists[0].id).platformId : '';
},
getPlatformFun() {
platformInfosList({}).then(res => {
if (res.status == 200) {
let transportIdListArr = [];
res.data.forEach((item, index) => {
if (item.brandUrl) {
transportIdListArr.push({id: JSON.stringify(item), name: item.brandName})
}
})
this.dataSource.localOrgId = transportIdListArr;
this.platformList = transportIdListArr;
this.form.platformId = transportIdListArr.length > 0 ? transportIdListArr[0].id : '';
this.form.brandUrl = sessionStorage.getItem('test') ? '' : JSON.parse(transportIdListArr[0].id).brandUrl;
this.getTransport();
}
})
.catch(() => {
},
mixins: [JudgeType],
data() {
return {
form: {
orderInfo: "",
dateTime: [],
platformId: "",
orderSourceList: dataSource.applyOrderSourceList,
complainWay: ["1", "2"],
complainCategory: ["1", "2"],
processingStatus: ["0", "1", "2"],
transportIds: [],
brandUrl: "",
runType: "1",
},
dataSource: dataSource,
platformList: [],
tabs: [
{ label: "同城打车", runType: "1" },
{ label: "跨城约车", runType: "2" },
{ label: "接送用车", runType: "3" },
{ label: "包车", runType: "6" },
{ label: "货运", runType: "5" },
],
};
},
created() {
// this.getPlatformFun();
if (this.brandLists.length > 0) {
this.getPlatformInfo();
this.getTransport();
}
},
methods: {
getPlatformInfo() {
this.dataSource.localOrgId = this.brandLists;
this.form.platformId =
this.brandLists.length > 0 ? this.brandLists[0].id : "";
this.brandUrl =
this.brandLists.length > 0
? JSON.parse(this.brandLists[0].id).brandUrl
: "";
this.plat =
this.brandLists.length > 0
? JSON.parse(this.brandLists[0].id).platformId
: "";
this.form.brandUrl = this.brandUrl;
},
getPlatformFun() {
platformInfosList({})
.then((res) => {
if (res.status == 200) {
let transportIdListArr = [];
res.data.forEach((item, index) => {
if (item.brandUrl) {
transportIdListArr.push({
id: JSON.stringify(item),
name: item.brandName,
});
}
});
this.dataSource.localOrgId = transportIdListArr;
this.platformList = transportIdListArr;
this.form.platformId =
transportIdListArr.length > 0 ? transportIdListArr[0].id : "";
this.form.brandUrl = sessionStorage.getItem("test")
? ""
: JSON.parse(transportIdListArr[0].id).brandUrl;
})
},
changePlatform(v) {
this.form.platformId = v;
this.form.brandUrl = JSON.parse(this.form.platformId).brandUrl;
this.dataSource.localTransportId = [];
this.getTransport();
// this.$refs.itemList.initTable(this.form);
},
handleClick() {
this.$refs.itemList.initTable(this.form);
},
searchByInfo() {
this.$refs.itemList.initTable(this.form);
},
async exportB() {
let search = this.form;
let params = {
platformId: JSON.parse(search.platformId).platformId,
transportIds: this.form.transportIds,
complaintLabel: this.form.complainCategory, // 投诉类别:1客户投诉2司机投诉
complaintType: search.complainWay, // 投诉类型:1线上投诉2电话投诉3建议
orderSource: search.orderSourceList,
status: search.processingStatus,
page: 1,
rows: 9999,
runType: [this.form.runType],
queryParam: search.orderInfo,
startTime: search.dateTime.length === 0 ? '' : search.dateTime[0],
endTime: search.dateTime.length === 0 ? '' : search.dateTime[1],
};
let loadingInstance = Loading.service({fullscreen: true});
let res = await exportComplaint(params, this.form.brandUrl)
let blob = new Blob([res], {type: "application/vnd.openxmlformatsnh[nh-officedocument.spreadsheetml.sheet;charset=utf-8"});
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
loadingInstance.close();
link.download = `工单列表.xlsx`;
link.click();
},
getTransport() {
}
})
.catch(() => {});
},
changePlatform(v) {
this.form.platformId = v;
this.form.brandUrl = JSON.parse(this.form.platformId).brandUrl;
this.dataSource.localTransportId = [];
this.getTransport();
// this.$refs.itemList.initTable(this.form);
},
handleClick() {
this.$refs.itemList.initTable(this.form);
},
searchByInfo() {
this.$refs.itemList.initTable(this.form);
},
let json = {
platformId: JSON.parse(this.form.platformId).platformId,
page: 1,
rows: 50
}
getAllTransport(json, this.form.brandUrl).then(res => {
if (res.status == 200) {
let datas = res.data.content;
let transportIdList = [];
let transportIdListArr = [];
datas.forEach((item, index) => {
transportIdListArr.push({id: String(item.transportId), name: item.transportName})
transportIdList.push(String(item.transportId))
})
this.form.transportIds = transportIdList;
this.dataSource.localTransportId = transportIdListArr;
async exportB() {
let search = this.form;
let params = {
platformId: JSON.parse(search.platformId).platformId,
transportIds: this.form.transportIds,
complaintLabel: this.form.complainCategory, // 投诉类别:1客户投诉2司机投诉
complaintType: search.complainWay, // 投诉类型:1线上投诉2电话投诉3建议
orderSource: search.orderSourceList,
status: search.processingStatus,
page: 1,
rows: 9999,
runType: [this.form.runType],
queryParam: search.orderInfo,
startTime: search.dateTime.length === 0 ? "" : search.dateTime[0],
endTime: search.dateTime.length === 0 ? "" : search.dateTime[1],
};
let loadingInstance = Loading.service({ fullscreen: true });
let res = await exportComplaint(params, this.form.brandUrl);
let blob = new Blob([res], {
type: "application/vnd.openxmlformatsnh[nh-officedocument.spreadsheetml.sheet;charset=utf-8",
});
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
loadingInstance.close();
link.download = `工单列表.xlsx`;
link.click();
},
getTransport() {
let json = {
platformId: JSON.parse(this.form.platformId).platformId,
page: 1,
rows: 50,
};
getAllTransport(json, this.form.brandUrl).then((res) => {
if (res.status == 200) {
let datas = res.data.content;
let transportIdList = [];
let transportIdListArr = [];
datas.forEach((item, index) => {
transportIdListArr.push({
id: String(item.transportId),
name: item.transportName,
});
transportIdList.push(String(item.transportId));
});
this.form.transportIds = transportIdList;
this.dataSource.localTransportId = transportIdListArr;
this.$refs.itemList.initTable(this.form);
}
})
},
handlechangeList(val) {
let source = JSON.parse(JSON.stringify(val))
let type = source.type
let data = this.filftersFun(source.data);
this.form[type] = data;
},
}
}
this.$refs.itemList.initTable(this.form);
}
});
},
handlechangeList(val) {
let source = JSON.parse(JSON.stringify(val));
let type = source.type;
let data = this.filftersFun(source.data);
this.form[type] = data;
},
},
};
</script>
<style scoped lang="scss">
.EnterpriseInformation {
::v-deep {
.el-tabs__header {
margin: 0;
}
::v-deep {
.el-tabs__header {
margin: 0;
}
.el-tabs--card > .el-tabs__header {
border-bottom: none;
}
.el-tabs--card > .el-tabs__header {
border-bottom: none;
}
}
}
.row-d {
.el-col {
padding: 5px 10px;
}
.el-col {
padding: 5px 10px;
}
}
</style>
......@@ -8,7 +8,7 @@
</el-row>
<div style="margin-top: 10px; display: inline-block">
<div style="display: flex; align-items: center">
<div style="margin-right: 10px; display: flex; align-items: center">
<!-- <div style="margin-right: 10px; display: flex; align-items: center">
<span style="white-space: nowrap; margin-right: 10px">
品牌:
</span>
......@@ -21,7 +21,7 @@
>
</el-option>
</el-select>
</div>
</div> -->
<el-input v-model="orderId" placeholder="请输入内容" style="width: 300px"></el-input>
......@@ -44,8 +44,8 @@
</div>
<el-row v-if="isShow">
<el-button v-if="dataSource.waybillStatus == '1'" type="primary" style="padding: 5px 20px;" @click="synchronization">同步司机信息</el-button>
<el-button v-if="dataSource.waybillStatus >= 1 && dataSource.waybillStatus < 6" type="warning" style="padding: 5px 20px;" @click="force" :loading="forceLoading">强制完单</el-button>
<el-button v-if="!!dataSource.driverId " type="primary" style="padding: 5px 20px;" @click="synchronization">同步司机信息</el-button>
<el-button type="warning" style="padding: 5px 20px;" @click="force" :loading="forceLoading">强制完单</el-button>
</el-row>
</el-row>
......@@ -571,11 +571,10 @@ export default {
pushDriver() {
this.synchronizationLoading = true;
let params = {
orderId: this.orderId,
platformId: JSON.parse(this.platformInfo).platformId
waybillId: this.orderId,
}
pushDriverApi(JSON.parse(this.platformInfo).brandUrl, params)
pushDriverApi( params)
.then((res) => {
if(res.status === 200) {
this.$message.success('推送成功');
......
......@@ -363,45 +363,32 @@
<div class="clearfix">
<span class="title">订单详情</span>
<div>
<el-button
type="danger"
size="mini"
@click="cancelOrder()"
v-if="dataSource.status * 1 < 3"
<el-button type="danger" size="mini" @click="cancelOrder()"
>取消订单
</el-button>
<el-button
type="primary"
size="mini"
@click="driverInfo()"
v-if="
dataSource.status * 1 == 2 || dataSource.status * 1 == 1
"
<!-- v-if="dataSource.status * 1 < 3" -->
<el-button type="primary" size="mini" @click="driverInfo()" v-if="
!!dataSource.driverId"
>同步司机信息
</el-button>
<el-button
type="warning"
size="mini"
v-if="
dataSource.status * 1 < 6 && dataSource.status * 1 >= 1
"
@click="finishOrder()"
<!-- v-if="
dataSource.status * 1 == 2 || dataSource.status * 1 == 1
" -->
<el-button type="warning" size="mini" @click="finishOrder()"
>强制完单
</el-button>
<el-button
type="warning"
size="mini"
@click="setpaystatus"
v-if="
<!-- v-if="
dataSource.status * 1 < 6 && dataSource.status * 1 >= 1
" -->
<el-button type="warning" size="mini" @click="setpaystatus"
>更改支付状态
</el-button>
<!-- v-if="
dataSource.status * 1 >= 6 &&
(dataSource.orderSource * 1 == 6 ||
dataSource.orderSource * 1 == 4 ||
dataSource.orderSource * 1 == 7)
"
>更改支付状态
</el-button>
" -->
<!-- orderSource=6 4 7 -->
<!-- 完单 未支付 自营 -->
<!-- <span v-html="renderfun(dataSource)"></span> -->
......@@ -919,11 +906,12 @@ export default {
});
},
pushDrive() {
let u=JSON.parse( this.platformInfo).brandUrl
let json = {
platformId: this.driverdata.platformId,
orderId: this.driverdata.orderId,
};
pushDriver(json).then((res) => {
pushDriver(u,json).then((res) => {
if (res.status == 200) {
this.driverStatus = false;
this.$message({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment