Commit c6e83854 authored by 李嘉兵's avatar 李嘉兵

订单全生命周期地图显示逻辑变更

parent 2193e498
...@@ -9,8 +9,10 @@ yarn-error.log* ...@@ -9,8 +9,10 @@ yarn-error.log*
# Editor directories and files # Editor directories and files
.idea .idea
.prettierrc
.vscode .vscode
*.suo *.suo
*.ntvs* *.ntvs*
*.njsproj *.njsproj
*.sln *.sln
...@@ -5,18 +5,18 @@ const prodEnv = require('./prod.env') ...@@ -5,18 +5,18 @@ const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, { module.exports = merge(prodEnv, {
NODE_ENV: '"development"', NODE_ENV: '"development"',
// 测试 // 测试
// HOST_URL: '"http://222.66.127.246"', HOST_URL: '"http://222.66.127.246"',
// PORT: '":8020"', PORT: '":8020"',
// BASE_URL: '""', BASE_URL: '""',
// appRealDb: '"app_test_shaphar"', appRealDb: '"app_test_shaphar"',
// 正式 // 正式
// HOST_URL: '"http://mobileportal.shaphar.com"', // HOST_URL: '"http://mobileportal.shaphar.com"',
// PORT: '":8028"', // PORT: '":8028"',
// BASE_URL: '"/basservice"', // BASE_URL: '"/basservice"',
// appRealDb: '"app_real_shaphar"', // appRealDb: '"app_real_shaphar"',
//NEW 正式 //NEW 正式
HOST_URL: '"https://mobileportal.shaphar.com"', // HOST_URL: '"https://mobileportal.shaphar.com"',
PORT: '":8443"', // PORT: '":8443"',
BASE_URL: '"/basservicenew"', // BASE_URL: '"/basservicenew"',
appRealDb: '"app_real_shaphar"' // appRealDb: '"app_real_shaphar"'
}) })
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
module.exports = { module.exports = {
NODE_ENV: '"production"', NODE_ENV: '"production"',
// 正式版 // 正式版
HOST_URL: '"https://mobileportal.shaphar.com:8443/basservicenew"', // HOST_URL: '"https://mobileportal.shaphar.com:8443/basservicenew"',
appRealDb: '"app_real_shaphar"', // appRealDb: '"app_real_shaphar"',
// 体验版 // 体验版
// HOST_URL: '"http://mobileportal.shaphar.com:8028/basservicenew"', // HOST_URL: '"http://mobileportal.shaphar.com:8028/basservicenew"',
// 测试版 // 测试版
// HOST_URL: '"http://222.66.127.246:8020"', HOST_URL: '"http://222.66.127.246:8020"',
// appRealDb: '"app_test_shaphar"', appRealDb: '"app_test_shaphar"',
// HOST_URL: '"http://192.168.1.139:8020"' // HOST_URL: '"http://192.168.1.139:8020"'
PORT: '""', PORT: '""',
BASE_URL: '""', BASE_URL: '""',
......
<template> <template>
<div class="logistics-content"> <div class="logistics-content">
<van-empty description="暂无数据" <van-empty
v-if="!((mapPointList&&mapPointList.length > 0)|| description="暂无数据"
(shippingInfo&&shippingInfo.shippingNo)|| v-if="
(stepList&&stepList.length > 0)|| !(
(orderInfo.isCold && coldInfo && coldInfo.length > 0)) && !shoppingLoading"/> (mapPointList && mapPointList.length > 0) ||
(shippingInfo && shippingInfo.shippingNo) ||
(stepList && stepList.length > 0) ||
(orderInfo.isCold && coldInfo && coldInfo.length > 0)
) && !shoppingLoading
"
/>
<!-- 高德地图 --> <!-- 高德地图 -->
<div style="position:relative;height:300px" v-if="gpsLoading || (mapPointList&&mapPointList.length > 0)"> <div
<a-map-view :transport="sendType" :point-list="mapPointList" :drive-point="driveLine" v-if="!gpsLoading && (mapPointList&&mapPointList.length > 0)"/> style="position:relative;height:300px"
v-if="gpsLoading || (mapPointList && mapPointList.length > 0)"
>
<a-map-view
:transport="sendType"
:point-list="mapPointList"
:drive-point="driveLine"
v-if="!gpsLoading && mapPointList && mapPointList.length > 0"
/>
<div class="map-loading" v-if="gpsLoading"> <div class="map-loading" v-if="gpsLoading">
{{ mapDataLoadingText }} {{ mapDataLoadingText }}
</div> </div>
</div> </div>
<!-- 物流主信息 --> <!-- 物流主信息 -->
<div class="logistics-header"> <div class="logistics-header">
<van-skeleton avatar :row="3" :loading="shoppingLoading" <van-skeleton
style="background-color:#fff;padding-top:10px;padding-bottom:10px"> avatar
<div class="header-title" v-if="shippingInfo&&shippingInfo.shippingNo"> :row="3"
<van-icon class="logistic-logo" :name="icons.logo"/> :loading="shoppingLoading"
style="background-color:#fff;padding-top:10px;padding-bottom:10px"
>
<div
class="header-title"
v-if="shippingInfo && shippingInfo.shippingNo"
>
<van-icon class="logistic-logo" :name="icons.logo" />
<span class="logistic-header-layout"> <span class="logistic-header-layout">
<div class="header-order-info main-info"> <div class="header-order-info main-info">
<span class="logistic-name">承运商:</span> <span class="logistic-name">承运商:</span>
...@@ -27,59 +48,104 @@ ...@@ -27,59 +48,104 @@
<span class="logistic-name">运单号:</span> <span class="logistic-name">运单号:</span>
<span class="logistic-values">{{ shippingInfo.shippingNo }}</span> <span class="logistic-values">{{ shippingInfo.shippingNo }}</span>
</div> </div>
<div class="header-order-info" style="margin-top: 2px;" v-if="shippingInfo.deliveryMan"> <div
class="header-order-info"
style="margin-top: 2px;"
v-if="shippingInfo.deliveryMan"
>
<span class="logistic-name">配送人:</span> <span class="logistic-name">配送人:</span>
<span class="logistic-values" style="display:flex;"> <span class="logistic-values" style="display:flex;">
<span style="flex:1">{{ shippingInfo.deliveryMan }} {{ shippingInfo.deliveryManPhone }}</span> <span style="flex:1"
<img class="logistic-func-icon" :src="icons.call" @click="callDriver(shippingInfo.deliveryManPhone)"/> >{{ shippingInfo.deliveryMan }}
{{ shippingInfo.deliveryManPhone }}</span
>
<img
class="logistic-func-icon"
:src="icons.call"
@click="callDriver(shippingInfo.deliveryManPhone)"
/>
</span> </span>
</div> </div>
<div class="header-order-info" style="margin-top:2px;margin-bottom:8px" <div
v-if="shippingInfo.estimatedArrivalTime && stepInfo && stepInfo.currentOrderStatusCode < 400"> class="header-order-info"
style="margin-top:2px;margin-bottom:8px"
v-if="
shippingInfo.estimatedArrivalTime &&
stepInfo &&
stepInfo.currentOrderStatusCode < 400
"
>
<span class="logistic-name">预计到达时间:</span> <span class="logistic-name">预计到达时间:</span>
<span class="logistic-values">{{ shippingInfo.estimatedArrivalTime }}</span> <span class="logistic-values">{{
shippingInfo.estimatedArrivalTime
}}</span>
</div> </div>
</span> </span>
<span class="logistic-type">{{ shippingInfo.roadType === 'D' ? '市内' : '市外' }}</span> <span class="logistic-type">{{
shippingInfo.roadType === 'D' ? '市内' : '市外'
}}</span>
</div> </div>
</van-skeleton> </van-skeleton>
</div> </div>
<!-- 物流追踪信息 --> <!-- 物流追踪信息 -->
<div id="stepLine" :class="stepList.length>2?'logistics-step-line':'logistics-step-line_show'" <div
v-if="stepList&&stepList.length > 0"> id="stepLine"
:class="
stepList.length > 2 ? 'logistics-step-line' : 'logistics-step-line_show'
"
v-if="stepList && stepList.length > 0"
>
<logistics-step> <logistics-step>
<step-item v-for="(item, index) in stepList" :stepInfo=item :key="index"/> <step-item
v-for="(item, index) in stepList"
:stepInfo="item"
:key="index"
/>
</logistics-step> </logistics-step>
<div class="show-more" @click="showStepLine"> <div class="show-more" @click="showStepLine">
点击查看更多物流详情 点击查看更多物流详情
<van-icon name="arrow-down"/> <van-icon name="arrow-down" />
</div> </div>
</div> </div>
<!-- 冷链温度趋势 --> <!-- 冷链温度趋势 -->
<van-tabs v-if="orderInfo.isCold && coldInfo && coldInfo.length > 0" <van-tabs
v-if="orderInfo.isCold && coldInfo && coldInfo.length > 0"
v-model="temperatureActive" v-model="temperatureActive"
title-active-color="#1989FA" title-active-color="#1989FA"
class="tabs"> class="tabs"
<van-tab :title="item.deviceNumber" v-for="(item,index) in coldInfo" :key="index"> >
<echarts-view :line-array="item.temperatureInfoList" :car-no="item.deviceNumber"/> <van-tab
:title="item.deviceNumber"
v-for="(item, index) in coldInfo"
:key="index"
>
<echarts-view
:line-array="item.temperatureInfoList"
:car-no="item.deviceNumber"
/>
</van-tab> </van-tab>
</van-tabs> </van-tabs>
</div> </div>
</template> </template>
<script> <script>
import {getShippingInfo, getTrackInfo, getGpsMapPoint, getColdTemperatureList} from '@/api/myOrder' import {
getShippingInfo,
getTrackInfo,
getGpsMapPoint,
getColdTemperatureList
} from '@/api/myOrder'
import MapView from '../../../components/MapView' import MapView from '../../../components/MapView'
import LogisticsStep from '../components/logisticsStep' import LogisticsStep from '../components/logisticsStep'
import StepItem from '../components/stepItem' import StepItem from '../components/stepItem'
import AMapView from '../../../components/AMapView' import AMapView from '../../../components/AMapView'
import EchartsView from '../../../components/EchartsView' import EchartsView from '../../../components/EchartsView'
import {bridge} from '../../../utils' import { bridge } from '../../../utils'
export default { export default {
name: 'logisticsDetail', name: 'logisticsDetail',
components: {EchartsView, AMapView, StepItem, LogisticsStep, MapView}, components: { EchartsView, AMapView, StepItem, LogisticsStep, MapView },
data() { data() {
return { return {
orderInfo: this.$route.query, orderInfo: this.$route.query,
...@@ -120,8 +186,7 @@ export default { ...@@ -120,8 +186,7 @@ export default {
title: '物流详情', title: '物流详情',
leftText: '', leftText: '',
leftClick: this.onBrowserBack, leftClick: this.onBrowserBack,
rightClick: function () { rightClick: function() {}
}
}) })
window.addEventListener('popstate', this.onBrowserBack, false) window.addEventListener('popstate', this.onBrowserBack, false)
// 获取运单信息 // 获取运单信息
...@@ -155,29 +220,51 @@ export default { ...@@ -155,29 +220,51 @@ export default {
getShippingData() { getShippingData() {
console.log(this.orderInfo) console.log(this.orderInfo)
let data = { let data = {
'orderId': '', orderId: '',
'orderNo': this.orderInfo.orderNo, // '879202103190016', orderNo: this.orderInfo.orderNo, // '879202103190016',
'orderType': this.orderInfo.orderType, // 'SALE', orderType: this.orderInfo.orderType, // 'SALE',
'sourceDb': this.orderInfo.sourceDb, // 'SHYY', sourceDb: this.orderInfo.sourceDb, // 'SHYY',
'pageSize': 10, pageSize: 10,
'pageNum': 1, pageNum: 1,
'sort': '', sort: '',
'order': '' order: ''
} }
getShippingInfo(data).then(rt => { getShippingInfo(data)
if (rt.code === 200 && rt.data && rt.data.code === '00000' && .then(rt => {
rt.data.entity && rt.data.entity.shippingList && rt.data.entity.shippingList.length > 0) { if (
rt.code === 200 &&
rt.data &&
rt.data.code === '00000' &&
rt.data.entity &&
rt.data.entity.shippingList &&
rt.data.entity.shippingList.length > 0
) {
this.shippingInfo = rt.data.entity.shippingList[0] this.shippingInfo = rt.data.entity.shippingList[0]
// 定义驾驶规划参数 // 定义驾驶规划参数
this.driveLine.startPoint.address = this.shippingInfo.pickingLocationDesc this.driveLine.startPoint.address = this.shippingInfo.pickingLocationDesc
this.driveLine.startPoint.longitude = parseFloat(this.shippingInfo.pickLongitude) this.driveLine.startPoint.longitude = parseFloat(
this.driveLine.startPoint.latitude = parseFloat(this.shippingInfo.pickLatitude) this.shippingInfo.pickLongitude
)
this.driveLine.startPoint.latitude = parseFloat(
this.shippingInfo.pickLatitude
)
this.driveLine.endPoint.address = this.shippingInfo.clientAddress this.driveLine.endPoint.address = this.shippingInfo.clientAddress
this.driveLine.endPoint.longitude = parseFloat(this.shippingInfo.longitude) this.driveLine.endPoint.longitude = parseFloat(
this.driveLine.endPoint.latitude = parseFloat(this.shippingInfo.latitude) this.shippingInfo.longitude
)
this.driveLine.endPoint.latitude = parseFloat(
this.shippingInfo.latitude
)
if (this.orderInfo.orderStatusCode > 300) { // if (this.orderInfo.orderStatusCode > 300) {
this.sendType = this.orderInfo.orderStatusCode === '310' // this.sendType = this.orderInfo.orderStatusCode === '310'
// this.getGpsPoint()
// }
console.log(this.orderInfo.orderStatusCode)
if (
this.orderInfo.orderStatusCode === '220' ||
this.orderInfo.orderStatusCode === '310'
) {
this.getGpsPoint() this.getGpsPoint()
} }
} else { } else {
...@@ -186,7 +273,8 @@ export default { ...@@ -186,7 +273,8 @@ export default {
} }
} }
this.shoppingLoading = false this.shoppingLoading = false
}).catch(err => { })
.catch(err => {
console.log('运单信息', err) console.log('运单信息', err)
this.$toast('运单信息获取失败') this.$toast('运单信息获取失败')
}) })
...@@ -194,20 +282,24 @@ export default { ...@@ -194,20 +282,24 @@ export default {
/* 物流追踪 */ /* 物流追踪 */
getTrackInfoDetail() { getTrackInfoDetail() {
let data = { let data = {
'sourceDb': this.orderInfo.sourceDb, sourceDb: this.orderInfo.sourceDb,
'supplierId': [this.orderInfo.supplierId], supplierId: [this.orderInfo.supplierId],
'clientID': [this.orderInfo.clientId], clientID: [this.orderInfo.clientId],
'orderId': '', orderId: '',
'orderNo': this.orderInfo.orderNo, orderNo: this.orderInfo.orderNo,
'orderType': this.orderInfo.orderType, orderType: this.orderInfo.orderType,
'supplierCode': [ supplierCode: [this.orderInfo.supplierCode],
this.orderInfo.supplierCode clientCode: [this.orderInfo.clientCode]
], }
'clientCode': [this.orderInfo.clientCode] getTrackInfo(data)
} .then(res => {
getTrackInfo(data).then(res => { if (
if (res.code === 200 && res.data && res.data.code === '00000' && res.code === 200 &&
res.data.entity && res.data.entity.logisticsTrackingInfoList) { res.data &&
res.data.code === '00000' &&
res.data.entity &&
res.data.entity.logisticsTrackingInfoList
) {
this.stepInfo = res.data.entity.logisticsTrackingInfoList this.stepInfo = res.data.entity.logisticsTrackingInfoList
let tempStep = [] let tempStep = []
this.stepInfo.orderStatusInfoVoList.forEach((item, index) => { this.stepInfo.orderStatusInfoVoList.forEach((item, index) => {
...@@ -217,7 +309,8 @@ export default { ...@@ -217,7 +309,8 @@ export default {
type: item.orderStatus, type: item.orderStatus,
typeCode: item.orderStatusCode, typeCode: item.orderStatusCode,
text: item.statusMsg, text: item.statusMsg,
showLine: index !== (this.stepInfo.orderStatusInfoVoList.length - 1) showLine:
index !== this.stepInfo.orderStatusInfoVoList.length - 1
}) })
}) })
this.stepList = tempStep this.stepList = tempStep
...@@ -226,7 +319,8 @@ export default { ...@@ -226,7 +319,8 @@ export default {
this.$toast(res.msg) this.$toast(res.msg)
} }
} }
}).catch(err => { })
.catch(err => {
console.log('物流跟踪', err) console.log('物流跟踪', err)
this.$toast('物流跟踪信息获取失败') this.$toast('物流跟踪信息获取失败')
}) })
...@@ -235,11 +329,11 @@ export default { ...@@ -235,11 +329,11 @@ export default {
getGpsPoint() { getGpsPoint() {
this.gpsLoading = true this.gpsLoading = true
let data = { let data = {
'orderType': this.orderInfo.orderType, // 'SALE', orderType: this.orderInfo.orderType, // 'SALE',
'shippingNo': this.shippingInfo.shippingNo, // '3S1255202103190010', shippingNo: this.shippingInfo.shippingNo, // '3S1255202103190010',
'sourceDb': this.orderInfo.sourceDb, // 'SHYY', sourceDb: this.orderInfo.sourceDb, // 'SHYY',
'gisTime': this.shippingInfo.actualArrivalTime, gisTime: this.shippingInfo.actualArrivalTime,
'orderNo': this.orderInfo.orderNo // '879202103190016' orderNo: this.orderInfo.orderNo // '879202103190016'
} }
// let data = { // let data = {
// 'orderType': 'SALE', // 'SALE', // 'orderType': 'SALE', // 'SALE',
...@@ -248,10 +342,16 @@ export default { ...@@ -248,10 +342,16 @@ export default {
// 'gisTime': '', // 'gisTime': '',
// 'orderNo': '543533035211583431' // '879202103190016' // 'orderNo': '543533035211583431' // '879202103190016'
// } // }
getGpsMapPoint(data).then(res => { getGpsMapPoint(data)
if (res.code === 200 && res.data.code === '00000' && .then(res => {
res.data.entity && res.data.entity.gisMapInfoList) { if (
res.code === 200 &&
res.data.code === '00000' &&
res.data.entity &&
res.data.entity.gisMapInfoList
) {
this.mapPointList = res.data.entity.gisMapInfoList this.mapPointList = res.data.entity.gisMapInfoList
this.sendType = true
} else { } else {
if (res.code === 500) { if (res.code === 500) {
this.$toast(res.msg) this.$toast(res.msg)
...@@ -260,7 +360,8 @@ export default { ...@@ -260,7 +360,8 @@ export default {
this.mapDataLoadingText = '定位数据请求失败或无数据' this.mapDataLoadingText = '定位数据请求失败或无数据'
} }
this.gpsLoading = false this.gpsLoading = false
}).catch(err => { })
.catch(err => {
console.log('GPS信息', err) console.log('GPS信息', err)
this.mapDataLoadingText = '定位数据请求失败' this.mapDataLoadingText = '定位数据请求失败'
this.$toast('定位数据请求失败') this.$toast('定位数据请求失败')
...@@ -270,19 +371,23 @@ export default { ...@@ -270,19 +371,23 @@ export default {
/* 获取温度变化趋势数据 */ /* 获取温度变化趋势数据 */
getTemperatureData() { getTemperatureData() {
let data = { let data = {
'order': 'desc', order: 'desc',
'orderId': '', orderId: '',
'orderNo': this.orderInfo.orderNo, // '301202103261165', orderNo: this.orderInfo.orderNo, // '301202103261165',
'orderType': this.orderInfo.orderType, // 'SALE', orderType: this.orderInfo.orderType, // 'SALE',
'pageNum': 1, pageNum: 1,
'pageSize': 1000, pageSize: 1000,
'sort': 'COLLECTDATE', sort: 'COLLECTDATE',
'sourceDb': this.orderInfo.sourceDb// 'SHYY' sourceDb: this.orderInfo.sourceDb // 'SHYY'
} }
getColdTemperatureList(data).then(res => { getColdTemperatureList(data).then(res => {
if (res.code === 200 && res.data.code === '00000' && if (
res.data.entity && res.data.entity.temperatureRecordList && res.code === 200 &&
res.data.entity.temperatureRecordList.length > 0) { res.data.code === '00000' &&
res.data.entity &&
res.data.entity.temperatureRecordList &&
res.data.entity.temperatureRecordList.length > 0
) {
this.coldInfo = res.data.entity.temperatureRecordList this.coldInfo = res.data.entity.temperatureRecordList
} }
}) })
...@@ -412,7 +517,7 @@ export default { ...@@ -412,7 +517,7 @@ export default {
} }
/deep/ .van-tabs__wrap { /deep/ .van-tabs__wrap {
border-bottom: 1px solid #eeeeee border-bottom: 1px solid #eeeeee;
} }
/deep/ .van-tabs__line { /deep/ .van-tabs__line {
......
<template> <template>
<div class="order-detail"> <div class="order-detail">
<!-- 订单状态 正常 --> <!-- 订单状态 正常 -->
<order-state class="order-state" :active="orderStateActive" v-if="detailData.orderType === 'SALE' && trackData.currentOrderStatusCode !== '110'"> <order-state
<order-state-item text="已开单" :item-num="1"/> class="order-state"
<order-state-item text="已发货" :item-num="2"/> :active="orderStateActive"
<order-state-item text="运输中" :item-num="3"/> v-if="
<order-state-item text="已签收" :item-num="4" :hasNext="false"/> detailData.orderType === 'SALE' &&
trackData.currentOrderStatusCode !== '110'
"
>
<order-state-item text="已开单" :item-num="1" />
<order-state-item text="已发货" :item-num="2" />
<order-state-item text="运输中" :item-num="3" />
<order-state-item text="已签收" :item-num="4" :hasNext="false" />
</order-state> </order-state>
<!-- 订单状态 退货 --> <!-- 订单状态 退货 -->
<order-state class="order-state" :active="orderStateActive" v-if="detailData.orderType === 'SALE_RTN' && trackData.currentOrderStatusCode !== '110'"> <order-state
<order-state-item text="已开单" :item-num="1"/> class="order-state"
<order-state-item text="退货中" :item-num="2"/> :active="orderStateActive"
<order-state-item text="已完成" :item-num="3" :hasNext="false"/> v-if="
detailData.orderType === 'SALE_RTN' &&
trackData.currentOrderStatusCode !== '110'
"
>
<order-state-item text="已开单" :item-num="1" />
<order-state-item text="退货中" :item-num="2" />
<order-state-item text="已完成" :item-num="3" :hasNext="false" />
</order-state> </order-state>
<!-- 订单状态 取消 --> <!-- 订单状态 取消 -->
<order-state class="order-state" :active="2" v-if="trackData.currentOrderStatusCode === '110'"> <order-state
<order-state-item text="已开单" :item-num="1"/> class="order-state"
<order-state-item text="已取消" :item-num="2" :hasNext="false"/> :active="2"
v-if="trackData.currentOrderStatusCode === '110'"
>
<order-state-item text="已开单" :item-num="1" />
<order-state-item text="已取消" :item-num="2" :hasNext="false" />
</order-state> </order-state>
<!-- 订单状态: <!-- 订单状态:
...@@ -38,19 +56,31 @@ ...@@ -38,19 +56,31 @@
<!-- 订单基本信息 --> <!-- 订单基本信息 -->
<div class="order-common order-info"> <div class="order-common order-info">
<div class="info-content"> <div class="info-content">
<van-icon :name="icons.order" class="order-icon info-icon"/> <van-icon :name="icons.order" class="order-icon info-icon" />
<div class="info-text"> <div class="info-text">
<div style="display: flex"> <div style="display: flex">
<span class="order-code">{{ detailData.orderNo }}</span> <span class="order-code">{{ detailData.orderNo }}</span>
<div class="order-copy" @click="onCopyOrderNo()"><span class="order-copy-text">复制</span></div> <div class="order-copy" @click="onCopyOrderNo()">
<span class="order-copy-text">复制</span>
</div>
</div> </div>
下单时间: {{ detailData.orderDate }} 下单时间: {{ detailData.orderDate }}
</div> </div>
</div> </div>
<div class="info-state"> <div class="info-state">
<span v-if="this.storageModel.rtn" class="state-type order-type-tip-return">退</span> <span
<span v-if="this.storageModel.cold" class="state-type order-type-tip-cold"></span> v-if="this.storageModel.rtn"
<span v-if="this.storageModel.jm" class="state-type order-type-tip-jm">精麻</span> class="state-type order-type-tip-return"
>退</span
>
<span
v-if="this.storageModel.cold"
class="state-type order-type-tip-cold"
></span
>
<span v-if="this.storageModel.jm" class="state-type order-type-tip-jm"
>精麻</span
>
</div> </div>
<!-- <div class="info-arrival">--> <!-- <div class="info-arrival">-->
<!-- <div class="arrival-time">--> <!-- <div class="arrival-time">-->
...@@ -62,19 +92,25 @@ ...@@ -62,19 +92,25 @@
<!-- 订单物流信息 --> <!-- 订单物流信息 -->
<div class="order-common order-logistics"> <div class="order-common order-logistics">
<div class="logistics-content" @click="openLogistics()"> <div class="logistics-content" @click="openLogistics()">
<!-- <van-icon :name="icons.inDelivery" class="order-icon logistics-icon"/>--> <!-- <van-icon :name="icons.inDelivery" class="order-icon logistics-icon"/>-->
<img :src="icons.inDelivery" class="order-icon logistics-icon"/> <img :src="icons.inDelivery" class="order-icon logistics-icon" />
<div class="logistics-text"> <div class="logistics-text">
<div style="display:flex"> <div style="display:flex">
<span class="logistics-speak">{{ !trackData.orderStatusInfoVoList[0].statusMsg?'暂无数据':trackData.orderStatusInfoVoList[0].statusMsg }}</span> <span class="logistics-speak">{{
<van-icon class="logistics-arrow" name="arrow"/> !trackData.orderStatusInfoVoList[0].statusMsg
? '暂无数据'
: trackData.orderStatusInfoVoList[0].statusMsg
}}</span>
<van-icon class="logistics-arrow" name="arrow" />
</div>
<div class="logistics-time">
{{ trackData.orderStatusInfoVoList[0].opDate }}
</div> </div>
<div class="logistics-time">{{ trackData.orderStatusInfoVoList[0].opDate }}</div>
</div> </div>
</div> </div>
<div class="location-content"> <div class="location-content">
<!-- <van-icon :name="icons.location" class="order-icon location-icon"/>--> <!-- <van-icon :name="icons.location" class="order-icon location-icon"/>-->
<img :src="icons.location" class="order-icon location-icon"/> <img :src="icons.location" class="order-icon location-icon" />
<div class="location-text"> <div class="location-text">
<div class="location-client">{{ detailData.clientName }}</div> <div class="location-client">{{ detailData.clientName }}</div>
<div class="location-receive">{{ detailData.shippingAdress }}</div> <div class="location-receive">{{ detailData.shippingAdress }}</div>
...@@ -85,24 +121,44 @@ ...@@ -85,24 +121,44 @@
<div class="goods-all" @click="openGoodsList()"> <div class="goods-all" @click="openGoodsList()">
<span class="all-title">商品明细</span> <span class="all-title">商品明细</span>
<span class="title-more">更多</span> <span class="title-more">更多</span>
<!-- <van-icon class="title-arrow" :name="icons.nextArrow" size="15"/>--> <!-- <van-icon class="title-arrow" :name="icons.nextArrow" size="15"/>-->
<img class="title-arrow" :src="icons.nextArrow" style="width:15px"/> <img class="title-arrow" :src="icons.nextArrow" style="width:15px" />
</div> </div>
<div class="order-common " style="padding-top: 0"> <div class="order-common " style="padding-top: 0">
<goods-simple-item v-for="(item,index) in detailData.goodsInfos" :key="item.goodsId" :item="item" <goods-simple-item
:is-last="index === detailData.goodsInfos.length - 1"/> v-for="(item, index) in detailData.goodsInfos"
:key="item.goodsId"
:item="item"
:is-last="index === detailData.goodsInfos.length - 1"
/>
</div> </div>
<!-- 订单发票信息 --> <!-- 订单发票信息 -->
<div> <div>
<div class="goods-all" @click="openOrderInvoice()"> <div class="goods-all" @click="openOrderInvoice()">
<span class="all-title">发票信息 ({{ invoiceData.total ? invoiceData.total : 0 }})</span> <span class="all-title"
>发票信息 ({{ invoiceData.total ? invoiceData.total : 0 }})</span
>
<span class="title-more">更多</span> <span class="title-more">更多</span>
<van-icon class="title-arrow" name="arrow"/> <van-icon class="title-arrow" name="arrow" />
</div> </div>
<div class="order-common" style="margin-bottom: 10px"> <div class="order-common" style="margin-bottom: 10px">
<invoice-simple-item v-for="(item, index) in invoiceData.invoiceList" :item="item" :key="item.invoiceNo" <invoice-simple-item
:is-last="index === invoiceData.invoiceList.length - 1" @itemClick="openInvoice(item)"/> v-for="(item, index) in invoiceData.invoiceList"
<div class="empty-tips" v-if="!invoiceData || !invoiceData.invoiceList || invoiceData.invoiceList.length <= 0">暂无数据</div> :item="item"
:key="item.invoiceNo"
:is-last="index === invoiceData.invoiceList.length - 1"
@itemClick="openInvoice(item)"
/>
<div
class="empty-tips"
v-if="
!invoiceData ||
!invoiceData.invoiceList ||
invoiceData.invoiceList.length <= 0
"
>
暂无数据
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -113,12 +169,21 @@ import OrderStateItem from '../components/orderStateItem' ...@@ -113,12 +169,21 @@ import OrderStateItem from '../components/orderStateItem'
import OrderState from '../components/orderState' import OrderState from '../components/orderState'
import GoodsSimpleItem from '../components/goodsSimpleItem' import GoodsSimpleItem from '../components/goodsSimpleItem'
import InvoiceSimpleItem from '../components/invoiceSimpleItem' import InvoiceSimpleItem from '../components/invoiceSimpleItem'
import {getMyOrderList, getTrackInfo, getOrderInvoiceList} from '@/api/myOrder' import {
import {bridge} from '@/utils' getMyOrderList,
getTrackInfo,
getOrderInvoiceList
} from '@/api/myOrder'
import { bridge } from '@/utils'
export default { export default {
name: 'orderDetail', name: 'orderDetail',
components: {InvoiceSimpleItem, GoodsSimpleItem, OrderState, OrderStateItem}, components: {
InvoiceSimpleItem,
GoodsSimpleItem,
OrderState,
OrderStateItem
},
data() { data() {
return { return {
orderItem: this.$route.query, orderItem: this.$route.query,
...@@ -130,10 +195,12 @@ export default { ...@@ -130,10 +195,12 @@ export default {
jm: false jm: false
}, },
trackData: { trackData: {
orderStatusInfoVoList: [{ orderStatusInfoVoList: [
{
statusMsg: '', statusMsg: '',
opDate: '' opDate: ''
}] }
]
}, },
invoiceData: {}, invoiceData: {},
icons: { icons: {
...@@ -254,37 +321,44 @@ export default { ...@@ -254,37 +321,44 @@ export default {
/* 获取订单详情 */ /* 获取订单详情 */
getOrderDetail() { getOrderDetail() {
let params = { let params = {
'businessType': '', businessType: '',
'clientID': [], clientID: [],
'endDate': '', endDate: '',
'goodsCode': '', goodsCode: '',
'goodsDesc': '', goodsDesc: '',
'goodsId': '', goodsId: '',
'goodsName': '', goodsName: '',
'goodsSpec': '', goodsSpec: '',
'isDelivered': '', isDelivered: '',
'isInvoice': '', isInvoice: '',
'isWeb': '', isWeb: '',
'manufacturer': '', manufacturer: '',
'mdmClientCode': '', mdmClientCode: '',
'order': '', order: '',
'orderId': this.orderItem.orderId, // 19977352;19965720 orderId: this.orderItem.orderId, // 19977352;19965720
'orderNo': '', // 225202103170165 orderNo: '', // 225202103170165
'orderStatusCode': '', orderStatusCode: '',
'orderType': this.orderItem.orderType, orderType: this.orderItem.orderType,
'pageNum': 1, pageNum: 1,
'pageSize': 20, pageSize: 20,
'shippingAdress': '', shippingAdress: '',
'sort': '', sort: '',
'sourceDb': this.orderItem.sourceDb, sourceDb: this.orderItem.sourceDb,
'sourceOrderNo': '', sourceOrderNo: '',
'sourceSystem': '', sourceSystem: '',
'startDate': '', startDate: '',
'supplierId': [] supplierId: []
} }
getMyOrderList(params).then(res => { getMyOrderList(params)
if (res.code === 200 && res.data && res.data.code === '00000' && .then(res => {
res.data.entity && res.data.entity.orderList && res.data.entity.orderList.length > 0) { if (
res.code === 200 &&
res.data &&
res.data.code === '00000' &&
res.data.entity &&
res.data.entity.orderList &&
res.data.entity.orderList.length > 0
) {
this.detailData = res.data.entity.orderList[0] this.detailData = res.data.entity.orderList[0]
this.detailData.goodsInfos.forEach(item => { this.detailData.goodsInfos.forEach(item => {
let mode = item.storageMode let mode = item.storageMode
...@@ -314,7 +388,8 @@ export default { ...@@ -314,7 +388,8 @@ export default {
this.$toast(res.msg) this.$toast(res.msg)
} }
} }
}).catch(err => { })
.catch(err => {
console.log('订单详情', err) console.log('订单详情', err)
this.$toast('订单详情获取失败') this.$toast('订单详情获取失败')
}) })
...@@ -322,20 +397,24 @@ export default { ...@@ -322,20 +397,24 @@ export default {
/* 物流追踪 */ /* 物流追踪 */
getTrackInfoDetail() { getTrackInfoDetail() {
let data = { let data = {
'sourceDb': this.orderItem.sourceDb, sourceDb: this.orderItem.sourceDb,
'supplierId': [this.orderItem.supplierId], supplierId: [this.orderItem.supplierId],
'clientID': [this.orderItem.clientId], clientID: [this.orderItem.clientId],
'orderId': '', orderId: '',
'orderNo': this.orderItem.orderNo, orderNo: this.orderItem.orderNo,
'orderType': this.orderItem.orderType, orderType: this.orderItem.orderType,
'supplierCode': [ supplierCode: [this.orderItem.supplierCode],
this.orderItem.supplierCode clientCode: [this.orderItem.clientCode]
], }
'clientCode': [this.orderItem.clientCode] getTrackInfo(data)
} .then(res => {
getTrackInfo(data).then(res => { if (
if (res.code === 200 && res.data && res.data.code === '00000' && res.code === 200 &&
res.data.entity && res.data.entity.logisticsTrackingInfoList) { res.data &&
res.data.code === '00000' &&
res.data.entity &&
res.data.entity.logisticsTrackingInfoList
) {
this.trackData = res.data.entity.logisticsTrackingInfoList this.trackData = res.data.entity.logisticsTrackingInfoList
this.calcOrderStep(this.trackData.currentOrderStatusCode) this.calcOrderStep(this.trackData.currentOrderStatusCode)
} else { } else {
...@@ -343,7 +422,8 @@ export default { ...@@ -343,7 +422,8 @@ export default {
this.$toast(res.msg) this.$toast(res.msg)
} }
} }
}).catch(err => { })
.catch(err => {
console.log('物流跟踪', err) console.log('物流跟踪', err)
this.$toast('物流追踪信息获取失败') this.$toast('物流追踪信息获取失败')
}) })
...@@ -351,34 +431,41 @@ export default { ...@@ -351,34 +431,41 @@ export default {
/* 获取发票列表 */ /* 获取发票列表 */
getInvoiceDetail() { getInvoiceDetail() {
let params = { let params = {
'clientID': [], clientID: [],
'endDate': '', endDate: '',
'goodsCode': '', goodsCode: '',
'goodsDesc': '', goodsDesc: '',
'goodsId': '', goodsId: '',
'goodsName': '', goodsName: '',
'goodsSpec': '', goodsSpec: '',
'invoiceCode': '', invoiceCode: '',
'invoiceDate': '', invoiceDate: '',
'invoiceFullNo': '', invoiceFullNo: '',
'invoiceNo': '', invoiceNo: '',
'isTwoTicket': '', isTwoTicket: '',
'manufacturer': '', manufacturer: '',
'mdmClientCode': '', mdmClientCode: '',
'mdmGoodsCode': '', mdmGoodsCode: '',
'order': '', order: '',
'orderId': this.orderItem.orderId, orderId: this.orderItem.orderId,
'orderNo': '', // this.orderItem.orderNo, orderNo: '', // this.orderItem.orderNo,
'pageNum': 1, pageNum: 1,
'pageSize': 3, pageSize: 3,
'sort': '', sort: '',
'sourceDb': this.$route.query.sourceDb, sourceDb: this.$route.query.sourceDb,
'startDate': '', startDate: '',
'supplierId': [] supplierId: []
} }
getOrderInvoiceList(params).then(res => { getOrderInvoiceList(params)
if (res.code === 200 && res.data && res.data.code === '00000' && .then(res => {
res.data.entity && res.data.entity.invoiceList && res.data.entity.invoiceList.length > 0) { if (
res.code === 200 &&
res.data &&
res.data.code === '00000' &&
res.data.entity &&
res.data.entity.invoiceList &&
res.data.entity.invoiceList.length > 0
) {
this.invoiceData = res.data.entity this.invoiceData = res.data.entity
} else { } else {
console.log('发票明细', '请求失败') console.log('发票明细', '请求失败')
...@@ -386,7 +473,8 @@ export default { ...@@ -386,7 +473,8 @@ export default {
this.$toast(res.msg) this.$toast(res.msg)
} }
} }
}).catch(err => { })
.catch(err => {
console.log('发票明细', err) console.log('发票明细', err)
this.$toast('发票明细获取失败') this.$toast('发票明细获取失败')
}) })
...@@ -462,7 +550,7 @@ export default { ...@@ -462,7 +550,7 @@ export default {
height: 15px; height: 15px;
text-align: center; text-align: center;
line-height: 15px; line-height: 15px;
margin-top:-3px; margin-top: -3px;
.order-copy-text { .order-copy-text {
transform: scale(0.85); transform: scale(0.85);
...@@ -494,7 +582,7 @@ export default { ...@@ -494,7 +582,7 @@ export default {
.arrival-time { .arrival-time {
background-color: #fdead0; background-color: #fdead0;
color: #B8741A; color: #b8741a;
font-size: 12px; font-size: 12px;
padding: 6px 10px; padding: 6px 10px;
text-align: center; text-align: center;
...@@ -532,7 +620,7 @@ export default { ...@@ -532,7 +620,7 @@ export default {
margin-right: 20px; margin-right: 20px;
font-weight: bold; font-weight: bold;
font-size: 12px; font-size: 12px;
flex: 1 flex: 1;
} }
/*箭头*/ /*箭头*/
...@@ -591,7 +679,7 @@ export default { ...@@ -591,7 +679,7 @@ export default {
} }
.title-more { .title-more {
color: $txtGray9 color: $txtGray9;
} }
.title-arrow { .title-arrow {
...@@ -624,7 +712,6 @@ export default { ...@@ -624,7 +712,6 @@ export default {
margin-left: 6px; margin-left: 6px;
} }
} }
} }
} }
</style> </style>
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