Commit 0c8567df by 吕海涛

小多智运项目提交

parent 4311a6d7
ENV = 'development'
# base api
VUE_APP_BASE_API1 = 'https://apps.xoado.com'
VUE_APP_BASE_API2 = 'https://core.xoado.com'
......@@ -18,4 +16,5 @@ VUE_APP_BASE_API12 = 'https://payment.sdk.xoado.com'
VUE_APP_BASE_API13 = 'https://projects.xoado.com/invoice'
VUE_APP_BASE_API14 = 'https://projects.xoado.com/message'
VUE_APP_BASE_API15 = 'https://aitransport.xoado.com/smart'
VUE_APP_BASE_API16 = 'http://proclamations.xoado.com/anc'
VUE_APP_BASE_API16 = 'https://proclamations.xoado.com/anc'
......@@ -17,4 +17,4 @@ VUE_APP_BASE_API12 = 'https://payment.sdk.xoado.com'
VUE_APP_BASE_API13 = 'https://projects.xoado.com/invoice'
VUE_APP_BASE_API14 = 'https://projects.xoado.com/message'
VUE_APP_BASE_API15 = 'https://aitransport.xoado.com/smart'
VUE_APP_BASE_API16 = 'http://proclamations.xoado.com/anc'
\ No newline at end of file
VUE_APP_BASE_API16 = 'https://proclamations.xoado.com/anc'
\ No newline at end of file
......@@ -34,4 +34,5 @@ VUE_APP_BASE_API11 = 'https://oss.xoado.com/v1/'
VUE_APP_BASE_API12 = 'https://payment.sdk.xoado.com'
VUE_APP_BASE_API13 = 'https://projects.xoado.com/invoice'
VUE_APP_BASE_API14 = 'https://projects.xoado.com/message'
VUE_APP_BASE_API15 = 'https://aitransport.xoado.com/smart'
\ No newline at end of file
VUE_APP_BASE_API15 = 'https://aitransport.xoado.com/smart'
VUE_APP_BASE_API16 = 'https://proclamations.xoado.com/anc'
\ No newline at end of file
<template>
<div id="app">
<!--路由出口 渲染匹配到的组件将渲染到这里-->
<router-view v-if="isRouterAlive"></router-view>
</div>
<div id="app">
<!--路由出口 渲染匹配到的组件将渲染到这里-->
<router-view v-if="isRouterAlive"></router-view>
</div>
</template>
<script>
import { getAppCode, platformsDomain, Organizations } from '@/port/account'
import axios from 'axios'
import { HOST_URL } from '@/config/index'
import { getAppCode, platformsDomain, Organizations } from "@/port/account";
import { getCarTypeList } from "@/port/order-select";
import axios from "axios";
import { HOST_URL } from "@/config/index";
import dataSource from "./libs/screen";
export default {
name: 'app',
data () {
return {
timer: null,
timerToken: null,
isRouterAlive: true
}
},
provide () {
return {
reload: this.reload
name: "app",
data() {
return {
timer: null,
timerToken: null,
isRouterAlive: true,
};
},
provide() {
return {
reload: this.reload,
};
},
async created() {
axios.defaults.headers.XOADOAPPACCESSCODE = sessionStorage.getItem("code");
await this.$store.dispatch("user/PlatformCode");
await this.mustFun();
await this.getCarTypeInfo();
},
mounted() {
// console.log(process.env.VUE_APP_BASE_API5)
// console.log(process.env.VUE_APP_BASE_API6)
this.GetPlatformCode();
this.keepLifeToken();
},
beforeDestroy() {
clearInterval(this.timer);
clearInterval(this.timerToken);
},
methods: {
async getCarTypeInfo() {
let params = {
vehicleName: "",
pageVo: {
page: 1,
rows: 999,
},
};
await getCarTypeList(params).then((res) => {
if (res.status === 200) {
let list = [];
res.data.content.forEach((item) => {
list.push({
id: item.vehicleFlag,
name: item.vehicleName,
});
});
dataSource.CarType = list;
}
});
},
async created () {
axios.defaults.headers.XOADOAPPACCESSCODE = sessionStorage.getItem('code')
await this.$store.dispatch('user/PlatformCode')
await this.mustFun();
reload() {
this.isRouterAlive = false;
this.$nextTick(function () {
this.isRouterAlive = true;
});
},
mounted () {
// console.log(process.env.VUE_APP_BASE_API5)
// console.log(process.env.VUE_APP_BASE_API6)
this.GetPlatformCode()
this.keepLifeToken()
GetPlatformCode() {
let that = this;
clearInterval(that.timer);
that.timer = setInterval(() => {
getAppCode()
.then((res) => {
axios.defaults.headers.XOADOAPPACCESSCODE = res;
that.$store.commit("user/SET_CODE", res);
})
.catch((err) => {});
}, 1000 * 60 * 5);
},
beforeDestroy () {
clearInterval(this.timer)
clearInterval(this.timerToken)
mustFun() {
// 获取当前的urlhost
let hosturl = HOST_URL;
// 根据当前的URL 获取所属平台信息
platformsDomain(hosturl).then((res) => {
let json = {
phone: res.data.telephone,
logo: res.data.logo,
id: res.data.ownerid,
platformid: res.data.platformid,
homeurl: res.data.home.url,
name: res.data.name,
describe: res.data.describe,
home: res.data.home.url,
brandName: res.data.brandName,
appLink: res.data.appLink,
type: res.data.platformOvertType,
Data: res.data,
org: [],
};
axios.defaults.headers.XOADOPLATFORMID = json.platformid;
this.$store.commit("user/SET_PLATFORMID", json.platformid);
document.title = res.data.name;
Organizations(json.id).then((res) => {
json.org = res.data;
axios.defaults.headers.XOADOPLATFORMID = json.platformid;
sessionStorage.setItem("ManPlatformData", JSON.stringify(json));
});
});
},
methods: {
reload () {
this.isRouterAlive = false
this.$nextTick(function () {
this.isRouterAlive = true
})
},
GetPlatformCode () {
let that = this
clearInterval(that.timer)
that.timer = setInterval(() => {
getAppCode().then(res => {
axios.defaults.headers.XOADOAPPACCESSCODE = res
that.$store.commit('user/SET_CODE', res)
}).catch((err) => {
})
}, 1000 * 60 * 5)
},
mustFun () {
// 获取当前的urlhost
let hosturl = HOST_URL
// 根据当前的URL 获取所属平台信息
platformsDomain(hosturl).then((res) => {
let json = {
phone: res.data.telephone,
logo: res.data.logo,
id: res.data.ownerid,
platformid: res.data.platformid,
homeurl: res.data.home.url,
name: res.data.name,
describe: res.data.describe,
home: res.data.home.url,
brandName: res.data.brandName,
appLink: res.data.appLink,
type: res.data.platformOvertType,
Data: res.data,
org: []
}
axios.defaults.headers.XOADOPLATFORMID = json.platformid
this.$store.commit('user/SET_PLATFORMID', json.platformid)
document.title = res.data.name
Organizations(json.id).then((res) => {
json.org = res.data
axios.defaults.headers.XOADOPLATFORMID = json.platformid
sessionStorage.setItem('ManPlatformData', JSON.stringify(json))
})
})
},
keepLifeToken () {
let that = this
clearInterval(that.timerToken)
that.timerToken = setInterval(() => {
if (!that.$store.getters.token) {
return
}
that.$store.dispatch('user/_keepTokenTime')
}, 1000 * 60 * 30)
keepLifeToken() {
let that = this;
clearInterval(that.timerToken);
that.timerToken = setInterval(() => {
if (!that.$store.getters.token) {
return;
}
}
}
that.$store.dispatch("user/_keepTokenTime");
}, 1000 * 60 * 30);
},
},
};
</script>
<style lang="scss">
*::-webkit-scrollbar-track { /*滚动条里面轨道*/
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
background: rgba(0, 0, 0, 0.1);
*::-webkit-scrollbar-track {
/*滚动条里面轨道*/
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
background: rgba(0, 0, 0, 0.1);
}
*::-webkit-scrollbar { /*滚动条整体样式*/
width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
height: 8px;
*::-webkit-scrollbar {
/*滚动条整体样式*/
width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
height: 8px;
}
*::-webkit-scrollbar-thumb { /*滚动条里面小方块*/
border-radius: 1px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.2);
*::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
border-radius: 1px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.2);
}
.title-left {
font-size: 18px;
padding-left: 10px;
font-weight: 800;
font-size: 18px;
padding-left: 10px;
font-weight: 800;
}
.title-left::before {
content: '';
position: absolute;
left: 0;
top: 10%;
width: 5px;
height: 80%;
background-color: #0099ff;
content: "";
position: absolute;
left: 0;
top: 10%;
width: 5px;
height: 80%;
background-color: #0099ff;
}
.form-n-bottom {
.el-form-item {
margin-bottom: 0;
}
.el-form-item {
margin-bottom: 0;
}
}
.pagination {
margin-top: 16px;
text-align: right;
margin-top: 16px;
text-align: right;
}
</style>
......@@ -15,21 +15,24 @@ import common from '@/assets/js/common.js'
import * as custom from '@/views/components/common/times.js'
import "@/assets/iconfont/iconfont.css"
import VueClipboard from 'vue-clipboard2'
window._AMapSecurityConfig = {
securityJsCode: "896eac44d80aee32a4af31fd830640da",
}
VueAMap.initAMapApiLoader({
key: '03b6a28b75d499b51929b9bcb582945f',
key: "27f19779e013de56742f061832d8047b",
plugin: [
'AMap.Autocomplete', // 输入提示插件
'AMap.PlaceSearch', // POI搜索插件
'AMap.Scale', // 右下角缩略图插件 比例尺
'AMap.OverView', // 地图鹰眼插件
'AMap.ToolBar', // 地图工具条
'AMap.MapType', // 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
'AMap.PolyEditor', // 编辑 折线多,边形
'AMap.CircleEditor', // 圆形编辑器插件
'AMap.Geolocation' // 定位控件,用来获取和展示用户主机所在的经纬度位置
"AMap.Autocomplete", // 输入提示插件
"AMap.PlaceSearch", // POI搜索插件
"AMap.Scale", // 右下角缩略图插件 比例尺
"AMap.OverView", // 地图鹰眼插件
"AMap.ToolBar", // 地图工具条
"AMap.MapType", // 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
"AMap.PolyEditor", // 编辑 折线多,边形
"AMap.CircleEditor", // 圆形编辑器插件
"AMap.Geolocation" // 定位控件,用来获取和展示用户主机所在的经纬度位置
],
v: '1.4.13'
})
v: "1.4.13"
});
Vue.prototype.common = common;
Vue.use(VueAMap);
Vue.use(animated)
......
import dataSource from "../libs/screen";
export default {
data() {
return {
......@@ -129,7 +130,8 @@ export default {
case 10:
return '携程旅游'
case 11:
return '飞猪旅行'
default:
}
},
......@@ -276,67 +278,81 @@ export default {
},
carTypeText(status) {
status = Number(status)
switch (status) {
case 1:
return '经济型'
case 2:
return '舒适型'
let result = '/';
for (let i = 0; i < dataSource.CarType.length; i++) {
if (status == dataSource.CarType[i].id) {
result = dataSource.CarType[i].name;
}
}
case 3:
return '商务型'
return result;
// switch (status) {
// case 1:
// return '经济型'
case 4:
return '豪华型'
// case 2:
// return '舒适型'
case 5:
return '微型面包'
// case 3:
// return '商务型'
case 6:
return '厢式货车'
// case 4:
// return '豪华型'
case 7:
return '厢式轻卡'
// case 5:
// return '微型面包'
case 8:
return '8座小巴'
// case 6:
// return '厢式货车'
case 9:
return '10座小巴'
// case 7:
// return '厢式轻卡'
case 10:
return '14座中巴'
// case 8:
// return '8座小巴'
case 11:
return '19座中巴'
// case 9:
// return '10座小巴'
case 12:
return '25座中巴'
// case 10:
// return '14座中巴'
case 13:
return '30座大巴'
// case 11:
// return '19座中巴'
case 14:
return '35座大巴'
// case 12:
// return '25座中巴'
case 15:
return '40座大巴'
// case 13:
// return '30座大巴'
case 16:
return '43座大巴'
// case 14:
// return '35座大巴'
case 17:
return '53座大巴'
// case 15:
// return '40座大巴'
case 143:
return '豪华型'
// case 16:
// return '43座大巴'
case 144:
return '尊贵型'
// case 17:
// return '53座大巴'
// case 18:
// return '经济7座'
// case 19:
// return '舒适7座'
// case 20:
// return '豪华7座'
// case 143:
// return '豪华型'
default:
return '/'
}
// case 144:
// return '尊贵型'
// default:
// return '/'
// }
},
runTypeText(type) {
type = Number(type)
......@@ -483,6 +499,18 @@ export default {
return "支付订单";
case 9:
return "乘客投诉";
case 10:
return "司机取消";
case 11:
return "乘客取消";
case 12:
return "调度取消";
case 13:
return "订单改派";
case 14:
return "订单信息变更";
case 15:
return "订单价格更改";
default:
}
},
......
import {get, post, put, deletes} from '@/request/http'
import {get, post, put, deletes } from '@/request/http'
export function carQuery(data) {
const url = process.env.VUE_APP_BASE_API6+'/vehicle/manage/query';
return post(url, data)
const url = process.env.VUE_APP_BASE_API6 + '/vehicle/manage/query';
return post(url, data)
}
export function driverQuery(data) {
const url = process.env.VUE_APP_BASE_API6+'/driver/manage/query';
return post(url, data)
const url = process.env.VUE_APP_BASE_API6 + '/driver/manage/query';
return post(url, data)
}
export function getAllTransport(data) {
const url = process.env.VUE_APP_BASE_API6+'/part/search?transportName=';
return get(url, data)
const url = process.env.VUE_APP_BASE_API6 + '/part/search?transportName=';
return get(url, data)
}
export function delDriver(data) {
const url = process.env.VUE_APP_BASE_API6 + `/driver?userId=${data.userId}&phoneNumber=${data.driverMobile}`;
return deletes(url, {})
}
\ No newline at end of file
import { post, get } from "@/request/http";
import { post, get, deletes } from "@/request/http";
/*
*获取订单详情
......@@ -41,4 +41,16 @@ export function pushDriverApi(data) {
export function forceFinishApi(data) {
const url = process.env.VUE_APP_BASE_API6 + '/temporaryDispatch/forceFinish';
return get(url, data)
}
/*
*运单强制删除
*/
export function delwaybill(data) {
const url = process.env.VUE_APP_BASE_API6 + `/new/waybill?waybillId=${data.waybillId}`;
return deletes(url, {})
}
// 同步收单中心
export function supplementData(u, data) {
const url = u + `/xoado/order/supplementData/${data}`;
return get(url, {})
}
\ No newline at end of file
......@@ -8,7 +8,11 @@
import {get, post, put, deletes, postblob } from '@/request/http'
import store from '@/store/index'
/* 获取车型列表新 */
export function getCarTypeList(data = {}) {
const url = process.env.VUE_APP_BASE_API7 + '/models/query'
return post(url, data)
}
/* 多条件查询运单列表 */
export function getAllWaybillList(data) {
const url = process.env.VUE_APP_BASE_API6 + '/new/waybill/select'
......@@ -400,7 +404,10 @@ export function SeachChannel(data) {
const url = process.env.VUE_APP_BASE_API6 + '/xoado/channel'
return get(url, data)
}
export function SeachChannelData(data) {
const url = process.env.VUE_APP_BASE_API6 + `/xoado/channel?organizeId=${data}`
return get(url)
}
/* 修改组织信息 */
export function updatePlatformInfo(data, id) {
const url = process.env.VUE_APP_BASE_API2_ + `/organize/organizations/${id}`
......@@ -866,7 +873,10 @@ export function accountList(data = {}) {
}
export function removetransport(Dataurl, id) {
const url = `${Dataurl}/brand/transport/remove/${id}`
return deletes(url, {})
}
/* 查询结算配置 */
export function newGetSettleAccounts(data = {}) {
// const url = targetBaseUrl + `/closeAnAccountCof/select/${json.platformId}/${json.transportId}/${json.runType}/${json.applyChannel}`
......@@ -925,4 +935,18 @@ export function getFreightCarBrand() {
export function getFreightCarBrands(val) {
const url = process.env.VUE_APP_BASE_API6 + '/new/car/pack/parent/' + val
return get(url, {})
}
/* 查询区域码*/
export function getCodoCitey(data) {
const url = process.env.VUE_APP_BASE_API8 + `/city/code?parentId=${data}`
return get(url, {})
}
export function setcodeajx(data) {
const url = process.env.VUE_APP_BASE_API15 + `/citycode/basearea`
return put(url, data)
}
/* 查询高德区域码*/
export function getcodeajx(data) {
const url = process.env.VUE_APP_BASE_API8 + `/gaode/address?address=${data}`
return get(url, {})
}
\ No newline at end of file
import {get, post, put, deletes} from '@/request/http'
import {get, post, put, deletes } from '@/request/http'
// 查询品牌配置管理
export function platformList(data) {
const url = process.env.VUE_APP_BASE_API15+'/platform/config/query';
return post(url, data)
const url = process.env.VUE_APP_BASE_API15 + '/platform/config/query';
return post(url, data)
}
// 查询所有品牌
export function platformInfosList(data) {
const url = process.env.VUE_APP_BASE_API15+'/platform/infos';
return get(url, data)
const url = process.env.VUE_APP_BASE_API15 + '/platform/infos';
return get(url, data)
}
// 查询业务类型,渠道配置项
export function platformConfig(data) {
const url = process.env.VUE_APP_BASE_API15+'/platform/config/selections';
return get(url, data)
const url = process.env.VUE_APP_BASE_API15 + '/platform/config/selections';
return get(url, data)
}
// 查询业务类型,渠道配置项
export function getPlatformInfo(data, platformId) {
const url = process.env.VUE_APP_BASE_API15+`/platform/config/${platformId}`;
return get(url, data)
const url = process.env.VUE_APP_BASE_API15 + `/platform/config/${platformId}`;
return get(url, data)
}
// 新增平台配置
export function addPlatformInfo(data) {
const url = process.env.VUE_APP_BASE_API15+`/platform/config/insert`;
return post(url, data)
const url = process.env.VUE_APP_BASE_API15 + `/platform/config/insert`;
return post(url, data)
}
// 新增平台配置
export function updatePlatformInfo(data) {
const url = process.env.VUE_APP_BASE_API15+`/platform/config/update`;
return post(url, data)
}
const url = process.env.VUE_APP_BASE_API15 + `/platform/config/update`;
return post(url, data)
}
\ No newline at end of file
......@@ -1174,4 +1174,14 @@ export function PutvoicePage(data) {
export function updateMobilenoCaptCha(data) {
const url = process.env.VUE_APP_BASE_API6 + `/driver/updateMobile/noCaptCha`
return put(url, data)
}
// 查询品牌列表
export function getPlatformListInfo() {
const url = process.env.VUE_APP_BASE_API2 + `/organize/platform/list`;
return get(url)
}
/*删除车辆 */
export function delcar(data) {
const url = process.env.VUE_APP_BASE_API6 + `/vehicle?platenumber=${data.platenumber}`
return deletes(url)
}
\ No newline at end of file
......@@ -416,6 +416,13 @@ export const routes = [{
title: '运营管理'
},
children: [{
path: 'mapcode',
name: 'mapcode',
component: () =>
import ('@/views/operation/mapcode.vue'),
meta: { title: '区域码管理', icon: 'el-icon-s-home' }
},
{
path: 'operationindex',
name: 'operationindex',
component: () =>
......@@ -427,7 +434,7 @@ export const routes = [{
name: 'driverPhone',
component: () =>
import ('@/views/operation/driverPhone.vue'),
meta: { title: '更改司机手机号码', icon: 'el-icon-s-home' }
meta: { title: '司机信息管理', icon: 'el-icon-s-home' }
},
{
path: 'to-be-sent',
......
......@@ -34,6 +34,14 @@ const getters = {
return []
}
},
brandListinfo: state => {
let arr = Object.keys(state.business.brandListinfo);
if (arr.length > 0) {
return JSON.parse(state.business.brandListinfo)
} else {
return []
}
},
orderDetail: state => {
let arr = Object.keys(state.business.orderDetail);
if (arr.length > 0) {
......
......@@ -4,7 +4,7 @@
* @time: 2020/4/13 11:52 AM
*
*/
import { getplatformList } from "@/port/set-request";
import { getplatformList, getPlatformListInfo } from "@/port/set-request";
import { color } from "echarts/lib/theme/light";
const state = {
......@@ -14,6 +14,7 @@ const state = {
productJJInfo: sessionStorage.getItem('productJJInfo') || {},
orderDetail: sessionStorage.getItem('orderDetail') || {},
brandList: sessionStorage.getItem('brandList') || [],
brandListinfo: sessionStorage.getItem('brandListinfo') || [],
}
const mutations = {
SET_AREACODE(state, payload) {
......@@ -42,6 +43,10 @@ const mutations = {
sessionStorage.setItem('brandList', payload)
},
SET_BRANDLISTINFO(state, payload) {
state.brandListinfo = payload
sessionStorage.setItem('brandListinfo', payload)
},
DEL_BRANDLIST(state) {
state.brandList = '';
sessionStorage.removeItem('brandList');
......@@ -84,6 +89,18 @@ const actions = {
})
},
async getPlatformListInfolist({ commit, dispatch, state, rootState }) {
await getPlatformListInfo().then((res) => {
if (res.status === 200) {
let data = res.data;
commit('SET_BRANDLISTINFO', JSON.stringify(data))
}
})
},
getRunTypeAndChannel({ commit, dispatch, state, rootState }) {
return new Promise((resolve) => {
selectionsApi(rootState.user.platformId)
......
......@@ -783,6 +783,10 @@ export default {
this.$router.push({path: '/business/order-Detail', query: {orderId: row.orderId}})
},
ToExcel() {
if(this.total>=15000){
this.$message.error("导出的数据量超过15000条会导致服务器带宽异常,请分批导出")
return
}
let json = this.selectResult;
let loadingInstance = Loading.service({fullscreen: true, text: '订单正在导出,请稍后'});
exportAllOrderList(json, this.brandUrl, this.plat).then(res => {
......
......@@ -527,14 +527,14 @@ export default {
},
//百度坐标转高德(传入经度、纬度)
bd_decrypt(bd_lng, bd_lat) {
let X_PI = (Math.PI * 3000.0) / 180.0;
let x = bd_lng - 0.0065;
let y = bd_lat - 0.006;
let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
let gg_lng = z * Math.cos(theta);
let gg_lat = z * Math.sin(theta);
return [gg_lng, gg_lat];
// let X_PI = (Math.PI * 3000.0) / 180.0;
// let x = bd_lng - 0.0065;
// let y = bd_lat - 0.006;
// let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
// let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
// let gg_lng = z * Math.cos(theta);
// let gg_lat = z * Math.sin(theta);
return [bd_lng, bd_lat];
},
/**
* 获取司机历史轨迹
......
......@@ -963,14 +963,14 @@
},
// 百度坐标转高德(传入经度、纬度)
bd_decrypt(bd_lng, bd_lat) {
let X_PI = (Math.PI * 3000.0) / 180.0;
let x = bd_lng - 0.0065;
let y = bd_lat - 0.006;
let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
let gg_lng = z * Math.cos(theta);
let gg_lat = z * Math.sin(theta);
return [gg_lng, gg_lat];
// let X_PI = (Math.PI * 3000.0) / 180.0;
// let x = bd_lng - 0.0065;
// let y = bd_lat - 0.006;
// let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
// let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
// let gg_lng = z * Math.cos(theta);
// let gg_lat = z * Math.sin(theta);
return [bd_lng, bd_lat];
},
/**
* 获取司机历史轨迹
......
......@@ -26,7 +26,7 @@
<el-col
style="display: flex; align-items: center; justify-content: end"
>
<el-button type="primary" size="mini" @click="$refs.addDialog.showDialog({})"> 添加基础</el-button>
<el-button type="primary" size="mini" @click="$refs.addDialog.showDialog({})"> 添加基础</el-button>
</el-col>
</el-row>
</el-form>
......
......@@ -24,7 +24,7 @@
<el-cascader v-if="isShowCas" v-model="form.penCity" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="关联电子围栏:" prop="polygonInfo">
<el-select v-model="form.polygonInfo">
<el-select v-model="form.polygonInfo" filterable >
<el-option
v-for="(item, index) in polygonData"
:label="item.name"
......@@ -33,6 +33,8 @@
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="站点专线:" prop="stationList">
<el-table
......@@ -186,6 +188,7 @@ export default {
})
},
methods: {
delStation(index) {
this.form.stationList.splice(index, 1);
},
......
......@@ -4,69 +4,38 @@
<el-row type="flex">
<el-col>
<el-form-item>
<el-input
v-model="form.CarModelName"
size="mini"
style="max-width: 260px"
suffix-icon="el-icon-search"
placeholder="请输入车型名称"
>
<el-input v-model="form.CarModelName" size="mini" style="max-width: 260px"
suffix-icon="el-icon-search" placeholder="请输入车型名称">
</el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="品牌名称:">
<el-select
v-model="form.platformListInfo"
placeholder="请选择"
size="mini"
>
<el-option
v-for="item in brandLists"
:key="item.platformId"
:label="item.brandName"
:value="item.platformId"
>
<el-select v-model="form.platformListInfo" placeholder="请选择" size="mini">
<el-option v-for="item in brandListss" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item>
<Selects
:options="dataSource.carTypeList"
sizeType="mini"
:selectName="'车辆类别:'"
:type="'carTypeList'"
@changeList="handlechangeList"
></Selects>
<Selects :options="dataSource.carTypeList" sizeType="mini" :selectName="'车辆类别:'"
:type="'carTypeList'" @changeList="handlechangeList"></Selects>
</el-form-item>
</el-col>
<el-col
style="display: flex; align-items: center; justify-content: end"
>
<el-col style="display: flex; align-items: center; justify-content: end">
<el-button type="primary" size="mini" @click="searchInfo">
查询
</el-button
>
<el-button
type="primary"
size="mini"
@click="() => $refs.addDialog.showDialog({})"
>
添加品牌类型
</el-button>
<el-button type="primary" size="mini" @click="() => $refs.addDialog.showDialog({})">
添加品牌车型
</el-button>
</el-col>
</el-row>
</el-form>
<el-table
stripe
:data="data"
border
style="margin-top: 10px"
:header-cell-style="tableHeaderColor"
>
<el-table stripe :data="data" border style="margin-top: 10px" :header-cell-style="tableHeaderColor">
<el-table-column label="序号" align="center" type="index" width="50">
</el-table-column>
<el-table-column label="品牌名称" align="center" prop="platformName">
......@@ -91,55 +60,34 @@
</el-table-column>
<el-table-column label="可接单车型" align="center" prop="runTypes">
<template slot-scope="scope">
<span
v-for="(item, index) in scope.row.rangeOfApplicationName"
:key="'runTypes' + index"
>
{{ index === 0 ? item : "、" + item }}
</span>
<span v-for="(item, index) in scope.row.rangeOfApplicationName" :key="'runTypes' + index">
{{ index === 0 ? item : "、" + item }}
</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="120">
<template slot-scope="scope">
<el-button
size="small"
type="text"
@click="() => $refs.addDialog.showDialog(scope.row)"
>
<el-button size="small" type="text" @click="() => $refs.addDialog.showDialog(scope.row)">
编辑
</el-button>
<el-button
size="small"
type="text"
style="color: red"
@click="delRow(scope.row.id)"
>
<el-button size="small" type="text" style="color: red" @click="delRow(scope.row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination" v-if="total > 10">
<el-pagination
background
layout="prev, pager, next, jumper, total"
:total="total"
:current-page="page"
@current-change="current_change"
>
<el-pagination background layout="prev, pager, next, jumper, total" :total="total" :current-page="page"
@current-change="current_change">
</el-pagination>
</div>
<addDialog
ref="addDialog"
:platformList="brandLists"
@reLoadTable="reLoadTable"
></addDialog>
<addDialog ref="addDialog" :platformList="brandListss" @reLoadTable="reLoadTable"></addDialog>
</div>
</template>
<script>
import {carTypeQuery, carTypeDelete} from "@/port/carModel/carModel";
import {getplatformList} from "@/port/set-request";
import { carTypeQuery, carTypeDelete } from "@/port/carModel/carModel";
import { getplatformList } from "@/port/set-request";
import addDialog from "./componenets/platformCarType/addDialog";
import dataSource from "@/libs/screen";
import JudgeType from "@/mixins/judgeType";
......@@ -153,23 +101,11 @@ export default {
Selects,
},
computed: {
brandLists() {
let brandList = this.$store.getters.brandList;
if(brandList.length === 0) {
return new Promise(() =>{
this.$store.dispatch('business/getBrandList')
})
brandList = this.$store.getters.brandList;
}
this.form.platformListInfo = brandList.length > 0 ? brandList[0].platformId : '';
this.initTable();
return brandList;
}
},
data() {
return {
brandListss:[],
dataSource: dataSource,
tableLoading: true,
data: [],
......@@ -186,14 +122,36 @@ export default {
},
async created() {
// await this.listInit();
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: item.platformId,
name: item.brandName,
};
});
this.form.platformListInfo = brandList.length > 0 ? brandList[0].id : '';
this.brandListss = brandList;
this.initTable();
return brandList;
},
methods: {
delRow(id) {
this.$confirm("删除后不可撤回,确定删除品牌车型", "删除提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
carTypeDelete({}, id).then((res) => {
if (res.status === 200) {
......@@ -267,8 +225,8 @@ export default {
});
},
// table变色,头
tableHeaderColor({row, column, rowIndex, columnIndex}) {
return {"background-color": "#0099ff", color: "#ffffff"};
tableHeaderColor({ row, column, rowIndex, columnIndex }) {
return { "background-color": "#0099ff", color: "#ffffff" };
},
},
};
......
......@@ -41,12 +41,12 @@
<el-form-item prop="password" v-else class="PassWord">
<el-input
maxlength="16"
placeholder="请输入密码"
placeholder="请输入您的密码"
style="height: 46px"
v-model="AccountruleForm.password"
@keyup.enter.native="submitAccountruleForm('ruleForm')"
>
<i slot="suffix" class="el-icon-view" @click="changePass('hide')"></i>
<i slot="suffix" class="el-icon-view" @click="changePass('hide')" style="color:#66b1ff"></i>
</el-input>
</el-form-item>
<div class="login-btn">
......
......@@ -44,7 +44,7 @@
</div>
</el-card>
<el-card style="margin-top: 10px">
<el-card style="margin-top: 10px" v-if="isShow">
<el-row type="flex" justify="space-between">
<div class="title-left" style="padding-left: 10px; font-weight: 800">
订单详情
......@@ -82,13 +82,24 @@
{{ getCarName(JSON.parse(dataSource.chooseVehicleType).type) }}
</span>
</div>
<div>
<el-button
v-if="isShow"
type="primary"
@click="setorder"
size="mini"
>同步至收单中心</el-button
>
<el-button
v-if="isShow"
type="danger"
style="padding: 0 20px"
size="mini"
@click="del"
>删除</el-button
>
</div>
</el-row>
<el-row style="border-bottom: 1px solid #d5d5d5; margin: 10px 0"></el-row>
......@@ -248,7 +259,7 @@
</template>
<script>
import { getOrderInfoApi, delDispatchDataApi } from "@/port/maintenance";
import { getOrderInfoApi, delDispatchDataApi,supplementData } from "@/port/maintenance";
import judgeType from "@/mixins/judgeType";
import CopyIcon from "@/views/components/CopyIcon";
import { modelsQuery } from "@/port/carModel/carModel";
......@@ -328,6 +339,7 @@ export default {
this.orderId,
]).then((res) => {
if (res.status === 200) {
if (res.data.content.length === 0) {
this.$message.info("未查到订单");
} else {
......@@ -339,6 +351,26 @@ export default {
}
});
},
setorder(){
this.$confirm(
"是否将此订单同步到收单中心?",
"删除",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
).then(() => {
supplementData(JSON.parse(this.platformInfo).brandUrl,this.dataSource.orderId).then((res) => {
if (res.status === 200) {
this.$message.success("同步成功");
} else {
this.$message.error(res.msg);
}
});
});
},
del() {
this.$confirm(
"删除调度中心待派订单,删除后不可恢复,确定删除?",
......
<template>
<el-card>
<el-dialog title="更改手机号" :visible.sync="dialogFormVisible" width="30%">
<el-form :model="dataform" style="margin: -30px 0;">
<div style="padding:10px;border:1px solid rgba(245, 154, 35, 1);background-color: rgba(250, 205, 145, 0.3);color: #F59A23;border-radius:5px">
<el-form :model="dataform" style="margin: -30px 0">
<div
style="
padding: 10px;
border: 1px solid rgba(245, 154, 35, 1);
background-color: rgba(250, 205, 145, 0.3);
color: #f59a23;
border-radius: 5px;
"
>
<div>温馨提示</div>
<div>
1.更改认证中心手机号将同步修改司机在小多平台下所有账号手机号;
......@@ -32,7 +40,7 @@
<el-row>
<div class="title-left" style="padding-left: 10px; font-weight: 800">
更改司机手机号
司机信息管理
</div>
</el-row>
<el-form class="search-form">
......@@ -134,9 +142,20 @@
<span>{{ runStatusText(row.serviceStatus) }}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="操作" align="center" width="100">
<el-table-column prop="name" label="操作" align="center" width="200">
<template slot-scope="{ row }">
<el-link type="primary" :underline="false" @click="setPhone(row)"
<el-link
type="primary"
:underline="false"
@click="delDriver(row)"
style="padding: 0 10px"
>删除</el-link
>
<el-link
type="primary"
:underline="false"
@click="setPhone(row)"
style="padding: 0 10px"
>更改手机号</el-link
>
</template>
......@@ -173,7 +192,11 @@ import {
getAllprovinceAndCity,
updateMobilenoCaptCha,
} from "@/port/set-request";
import { driverQuery, getAllTransport } from "@/port/carOrDriver/carOrDriver";
import {
driverQuery,
getAllTransport,
delDriver,
} from "@/port/carOrDriver/carOrDriver";
export default {
name: "driver",
......@@ -242,10 +265,39 @@ export default {
};
},
async created() {
await this.getTransport(); // 获取所有运力
// await this.getTransport(); // 获取所有运力
await this.initTable();
},
methods: {
delDriver(d) {
this.$confirm("此操作将删除该司机, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
delDriver(d).then((res) => {
if (res.status == 200) {
this.initTable();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.msg,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
setPhone(d) {
this.dataform = d;
this.newPhone = "";
......
......@@ -44,7 +44,7 @@
style="margin-top: 10px; display: flex"
v-if="inputStatus"
>
<div class="clearfix">
<div class="clearfix" v-if="dataSource">
<span class="title">订单运维管理</span>
<div>
<el-button type="danger" size="mini" @click="cancelOrder()"
......@@ -409,6 +409,7 @@
<el-card class="box-card">
<div class="clearfix">
<span class="title">订单详情</span>
<span v-html="renderfun(dataSource)"></span>
</div>
<div>
<ul class="table-info">
......@@ -916,11 +917,11 @@ export default {
let a = this.datainput;
let json = {
orderId: data.orderId,
tPaymentId: this.value < 1 ? this.input : "",
tPaymentStatus: 2,
tPaymentType:
tpaymentId: this.value < 1 ? this.input : "",
tpaymentStatus: 2,
tpaymentType:
this.value < 1 ? (!!this.datainput ? a.executeStatus : "4") : "4",
tRealMoney:
trealMoney:
this.value < 1
? !!this.datainput
? a.businessInfo.totalFee
......@@ -931,7 +932,7 @@ export default {
};
let brandUrl = JSON.parse(this.platformInfo).brandUrl;
paymentchannel(brandUrl, json).then((res) => {
debugger;
if (res.status == 200) {
this.paystatus = false;
this.$message({
......@@ -1005,15 +1006,27 @@ export default {
this.paystatus = true;
},
getpayInfoFun() {
let json={
orderId:this.payData.orderId
}
getpayInfo(json).then((res) => {
if (res.status == 200) {
if (res.status == 200&&res.data.length>0) {
this.input = res.data[0].businessSerial;
this.datainput = res.data[0];
} else {
this.$message({
if(res.data.length<=0&&res.status == 200){
this.$message({
type: "warning",
message: "暂未获取订单号",
});
}else{
this.$message({
type: "error",
message: res.msg,
});
}
}
});
},
......@@ -1049,6 +1062,9 @@ export default {
getThisorderInfo([obj.orderId], obj.brandUrl, obj.platformId).then(
(res) => {
if (res.status == 200) {
if(res.data.content.length<1){
return
}
this.inputStatus = true;
let datas = res.data.content[0];
try {
......@@ -1148,14 +1164,14 @@ export default {
},
//百度坐标转高德(传入经度、纬度)
bd_decrypt(bd_lng, bd_lat) {
let X_PI = (Math.PI * 3000.0) / 180.0;
let x = bd_lng - 0.0065;
let y = bd_lat - 0.006;
let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
let gg_lng = z * Math.cos(theta);
let gg_lat = z * Math.sin(theta);
return [gg_lng, gg_lat];
// let X_PI = (Math.PI * 3000.0) / 180.0;
// let x = bd_lng - 0.0065;
// let y = bd_lat - 0.006;
// let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
// let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
// let gg_lng = z * Math.cos(theta);
// let gg_lat = z * Math.sin(theta);
return [bd_lng, bd_lat];
},
/**
* 获取司机历史轨迹
......
<template>
<div>
<el-col :span="7" v-for="(element, index) in data" :key="index" :offset="index > 0 ? 2 : 0"
:class="[index > 0 ? 'offsetMarginLeft' : '']">
<el-card style="margin-bottom: 15px;position: relative;">
<div style="display: flex;align-items: center; justify-content: space-between;">
<div>
<el-avatar shape="square" :size="60" fit="fill" :src="element.otherInfo.logo"></el-avatar>
</div>
<div style="flex:1;padding-left: 10px;">{{ element.brandName }}</div>
</div>
<div style="height: 100%;position: absolute;top: 15px;right: 15px;color: #D9001B;cursor: pointer;"
@click="delplatform(element, index)">解除关联</div>
</el-card>
</el-col>
</div>
</template>
<script>
import dataSource from "@/libs/screen";
import { SeachChannelData,removetransport } from "@/port/order-select";
export default {
name: "driver",
props: ['transport'],
data() {
return {
dataSource: dataSource,
data: [],
}
},
async created() {
await this.initTable();
},
methods: {
async initTable() {
await SeachChannelData(this.transport).then(res => {
if (res.status == 200) {
if (!!res.data) {
this.data = res.data.content
}
} else {
this.$message.error(res.msg);
}
})
},
delplatform(element, index) {
this.$confirm("解除后不可撤回,确定解除运力与该品牌的合作关系?", "解除关联", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
removetransport(element.otaToken,this.transport)
.then((res) => {
if(res.status === 200) {
this.$message.success('解除成功')
this.initTable();
}else {
this.$message.error(res.msg)
}
})
})
}
}
}
</script>
<style scoped lang="scss">
.search-form {
margin: 5px 0 5px 0;
.el-form-item {
margin-bottom: 5px;
}
}
.pagination {
margin-top: 16px;
text-align: right;
}
.offsetMarginLeft {
margin-left: calc((33% - 29%));
}
::v-deep {
.el-card__body {
padding: 15px !important;
}
}
</style>
......@@ -3,7 +3,7 @@
<el-card>
<el-row v-if="Object.keys(queryRow).length > 0" type="flex" align="flex-end">
<div style="width: 100px;">
<el-image style="width: 100px;height: 60px;" :src="logo" lazy></el-image>
<el-image style="width: 100px;height: 60px;" :src="logo" lazy fit="contain"></el-image>
</div>
<div style="width: calc(100% - 100px);padding-left: 10px;display: flex;align-items: flex-end;padding-bottom: 5px;">
<el-row>
......@@ -29,6 +29,7 @@
<driver :transport="queryRow.organizeId" @getDriverTotal="getDriverTotal" v-show="activeName === '0'"></driver>
<car :transport="queryRow.organizeId" @getCarTotal="getCarTotal" v-show="activeName === '1'"></car>
<platformName :transport="queryRow.organizeId" v-show="activeName === '2'"></platformName>
</el-card>
</div>
</template>
......@@ -36,26 +37,27 @@
<script>
import car from "./components/car";
import driver from "./components/driver";
import platformName from "./components/platformName";
import {Organizations} from "@/port/account";
export default {
name: "transportDetail",
components: {
car,
driver
driver,
platformName
},
data() {
return {
logo: '',
queryRow: {},
activeName: '',
tabsList: [{id: '0', name: '司机数'},{id: '1', name: '车辆数'}]
tabsList: [{id: '0', name: '司机数'},{id: '1', name: '车辆数'},{id: '2', name: '合作品牌'}]
}
},
created() {
this.queryRow = JSON.parse(this.$route.query.row);
this.activeName = '0';
console.log(this.queryRow)
this.getLogo();
},
methods: {
......@@ -77,6 +79,7 @@ export default {
getDriverTotal(t) {
this.tabsList[0].name = `司机数(${t})`;
},
}
}
</script>
......
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