Commit 8028f675 authored by 我在何方's avatar 我在何方

重量超限异常添加工作流

parent 0c89be3c
......@@ -459,7 +459,13 @@ export default {
revoke_clear:{
component:() => import("@/views/ecw/box/components/RevokeClear"),
id: this.processInstance.businessKey
}
},
// 重量超限
over_weight_exception:{
component: () => import('@/views/ecw/order/exception/components/overweightException'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
}
console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
......
<!--拆单审核中的申请信息部分-->
<template>
<div v-if="order">
<el-descriptions :column="3" v-if="order" :colon="false">
<el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag class="mr-10" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{channel ? channel.nameZh : '/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">
{{order.logisticsInfoDto.startTitleZh}}
</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')" :span="2">
{{order.logisticsInfoDto.destAddressZh}}
</el-descriptions-item>
<el-descriptions-item :label="$t('异常描述')" :span="2">
{{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
</el-descriptions-item>
</el-descriptions>
<div v-for="row in orderItemData" :key="row.orderItemId">
<div v-if="row.charging ==1" class="price_list">
<span>旧成交价:</span>
<div>
<div v-if="!row.oneSeaFreight">
<span>{{$t('全包价')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
<div v-else>
<span>{{$t('全包价')}}:</span>
<span>{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span>
</div>
</div>
</div>
<div v-else class="price_list">
<span>旧成交价:</span>
<div>
<div v-if="!row.oneSeaFreight">
<span>{{$t('运费')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
<div v-else>
<span>{{$t('运费')}}:</span>
<span>{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span>
</div>
</div>
<div>
<div v-if="!row.oneClearanceFreight">
<span >{{$t('清关费')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
<div v-else>
<span>{{$t('清关费')}}:</span>
<span>{{row.oneClearanceFreight}} {{currencyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}</span>
</div>
</div>
</div>
</div>
<div v-for="row in loopOrderItem" :key="row.orderItemId">
<div v-if="row.charging ==1" class="price_list">
<span>新成交价:</span>
<div>
<div v-if="!row.oneSeaFreight">
<span >{{$t('全包价')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
<div v-else>
<span >{{$t('全包价')}}:</span>
<span>{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span>
</div>
</div>
</div>
<div v-else class="price_list">
<span>新成交价:</span>
<div>
<div v-if="!row.oneSeaFreight">
<span>{{$t('运费')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
<div v-else>
<span >{{$t('运费')}}:</span>
<span>{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</span>
</div>
</div>
<div>
<div v-if="!row.oneClearanceFreight">
<span >{{$t('清关费')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
<div v-else>
<span>{{$t('清关费')}}:</span>
<span>{{row.oneClearanceFreight}} {{currencyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}</span>
</div>
</div>
</div>
</div>
<el-descriptions :column="3" v-if="order" :colon="false">
<el-descriptions-item :label="$t('备注')" :span="2">
{{$l(orderExceptionData.orderExceptionRemark, 'desc')}}
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
import {getOrder} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getUnitList} from "@/api/ecw/unit"
import { getCurrencyList } from '@/api/ecw/currency'
import {getProductAttrList} from '@/api/ecw/productAttr'
import Decimal from 'decimal.js'
import {getExceptionDetailByBusinessId,getOrderExceptionChannelPriceList} from '@/api/ecw/orderException'
export default {
name: 'overweightException',
props:{
id: [String, Number],
path: String
},
data(){
return {
orderExceptionData: null,
order: null,
channel: null,
unitList:[],
currencyList:[],
detail:null,
loopOrderItem:[],
orderItemData:[]
}
},
watch:{
id(){
this.getData()
},
order(){
if(this.order.channelId){
this.getChannel()
}
},
},
computed:{
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
}
},
async created(){
await getUnitList().then(res => this.unitList = res.data)
await getCurrencyList().then(res => this.currencyList = res.data)
this.productAttrList = (await getProductAttrList()).data
if(this.id){
this.getData()
}
},
methods:{
Decimal,
getData(){
getExceptionDetailByBusinessId({businessId:this.id}).then(res => {
this.orderExceptionData = res.data
if(this.orderExceptionData.orderExceptionRemark){
this.orderExceptionData.orderExceptionRemark=JSON.parse(this.orderExceptionData.orderExceptionRemark)
}
if(res.data.orderId){
getOrder(res.data.orderId).then(res => {
this.order = res.data
this.getExceptionPriceList(res.data.orderId)
})
}
})
},
getProdAtrr(ids){
if(!ids) return ''
let attr = []
let attrIds = ids.split(',')
this.productAttrList.forEach(item=>{
if(attrIds.indexOf(item.id) > -1||attrIds.indexOf(item.id+'')>-1){
attr.push(this.$l(item, 'attrName'))
}
})
return attr.join(',')
},
getChannel(){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
},
getExceptionPriceList(orderId){
let that = this
that.loopOrderItem = []
getOrderExceptionChannelPriceList({orderId:orderId,exceptionId:this.orderExceptionData.id,exceptionResultId:parseInt(that.id)}).then(res=>{
if(res.code==0&&res.data.length>0){
that.order.orderItemVOList.map(v=>{
let item = res.data.find(vs=>vs.orderItemId==v.orderItemId)
let orderItem = {}
if(item){
orderItem.oneSeaFreight = item.freightFee
orderItem.seaFreightCurrency = item.freightCurrencyId
orderItem.seaFreightVolume = item.freightUnitId
orderItem.oneClearanceFreight = item.clearanceFee
orderItem.clearanceFreightCurrency = item.clearanceCurrencyId
orderItem.clearanceFreightVolume = item.clearanceUnitId
that.loopOrderItem.push(orderItem)
that.orderItemData.push(v)
}
})
}
})
}
}
}
</script>
<style scoped lang="scss">
.title{
padding: 10px 0;
span{
font-size: 14px;
font-weight: bold;
}
}
.bold{
font-weight: bold;
}
::v-deep .prepay_exception_detail .el-form-item{
margin-bottom: 0;
}
.price_list{
display: flex;
align-items: center;
margin-right:10px;
font-weight: 700;
font-size: 14px;
color:#333;
margin-bottom:10px;
}
.price_list div{
}
</style>
......@@ -45,6 +45,13 @@
{{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
</el-form-item>
</el-row>
<el-row :span="12" v-if="orderExceptionData.orderExceptionType=='order_other_exception'&&orderExceptionData.orderExceptionRemark">
<el-form-item :label="$t('详细说明')+':'">
<!-- <dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="orderExceptionData.orderExceptionType" /> -->
<!-- {{orderExceptionData.orderExceptionDescVO?orderExceptionData.orderExceptionDescVO.descZh:''}} -->
{{$l(orderExceptionData.orderExceptionRemark, 'desc')}}
</el-form-item>
</el-row>
<!-- 单证异常,发货人异常,其他异常 不显示这部分内容 -->
<div v-if="['order_doc_exception','order_consignor_exception', 'order_other_exception','overweight_exception','channel_packaging_overweight_exception'].indexOf(orderExceptionData.orderExceptionType) == -1">
......@@ -361,8 +368,9 @@
<el-input style="width: 500px;" type="textarea" v-model="handlerParams.orderExceptionHandlerRemark" :disabled="orderExceptionData.orderExceptionStatus==2" />
</el-form-item>
</el-row>
<!-- 线路单证异常 -->
<div v-if="orderExceptionData.orderExceptionType=='line_loop_exception'">
<!-- 线路单证异常,重量超限,渠道超限异常 -->
<div v-if="orderExceptionData.orderExceptionType=='line_loop_exception'||((orderExceptionData.orderExceptionType=='channel_packaging_overweight_exception'||orderExceptionData.orderExceptionType=='overweight_exception')&&handlerParams.orderExceptionHandlerResult=='allow_over')">
<div v-for="row in loopOrderItem" :key="row.orderItemId">
<div v-if="row.charging ==1">
......@@ -415,7 +423,7 @@
</div>
</div>
<div class="price_list">
<div v-if="!row.oneSeaFreight">
<div v-if="!row.oneClearanceFreight">
<span class="price_label">{{$t('清关费')}}:</span>
<span>{{$t('未报价')}}</span>
</div>
......@@ -768,8 +776,10 @@
待审核可能没有bpmStatus字段
-->
<template v-if="orderExceptionData.bpmStatus == 1 || (orderExceptionData.bpmId && !orderExceptionData.bpmStatus)">
<el-button type="primary" @click="$router.push(`/bpm/process-instance/detail?id=`+orderExceptionData.bpmId)">{{$t('审核中')}}</el-button>
<el-button plain type="primary" @click="cancelAudit">{{$t('取消审核')}}</el-button>
<el-button v-if="['channel_packaging_overweight_exception','overweight_exception'].indexOf(orderExceptionData.orderExceptionType)>-1" type="primary" @click="$router.push(`/bpm/process-instance/detail?id=`+orderExceptionData.bpmId)">{{$t('重量超限改价审核中')}}</el-button>
<el-button v-else type="primary" @click="$router.push(`/bpm/process-instance/detail?id=`+orderExceptionData.bpmId)">{{$t('审核中')}}</el-button>
<el-button v-if="['channel_packaging_overweight_exception','overweight_exception'].indexOf(orderExceptionData.orderExceptionType)>-1" plain type="primary" @click="cancelAudit">{{$t('取消重量超限改价审核')}}</el-button>
<el-button v-else plain type="primary" @click="cancelAudit">{{$t('取消审核')}}</el-button>
<el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
</template>
<template v-else-if="orderExceptionData.orderExceptionStatus==2">
......@@ -891,7 +901,7 @@
},
watch:{
'handlerParams.orderExceptionHandlerResult'(val){
if(val == 'no_pay'){
if(val == 'no_pay'||val=="allow_over"){
this.showWorkFlow = true
}else if(val=="continue_channel"){
this.showWorkFlow = true
......@@ -1027,6 +1037,10 @@
if(that.orderExceptionData.orderExceptionAttr){
that.handlerParams.fileList = that.orderExceptionData.orderExceptionAttr.split(',')
}
if(that.orderExceptionData.orderExceptionRemark){
that.orderExceptionData.orderExceptionRemark=JSON.parse(that.orderExceptionData.orderExceptionRemark)
}
// if(response.data.hasOwnProperty('orderItemId')){
// that.getShopData(response.data.orderItemId)
// }
......@@ -1093,12 +1107,17 @@
v.clearanceFreightVolume = this.unitList[1]['id']
}
})
}else if(handlerParams.orderExceptionHandlerResult=='continue_channel'){
this.getExceptionPriceList('continue_channel')
}else if(this.handlerParams.orderExceptionHandlerResult=='line_loop_exception'){
this.getExceptionPriceList('line_loop_exception',1)
}
}
if(this.orderExceptionData.orderExceptionType=='line_loop_exception'){
this.getExceptionPriceList('line_loop_exception')
if(this.handlerParams.orderExceptionHandlerResult=='continue_channel'){
this.getExceptionPriceList('continue_channel',1)
}
if(['channel_packaging_overweight_exception','overweight_exception'].indexOf(this.orderExceptionData.orderExceptionType)>-1&&this.orderExceptionData.orderExceptionStatus=='1'){
this.getExceptionPriceList('continue_channel',2)
}else{
this.getExceptionPriceList('line_loop_exception',1)
}
});
},
......@@ -1203,8 +1222,8 @@
return
}
}
if((this.orderExceptionData.orderExceptionType=='not_shipping_channel_exception')||this.orderExceptionData.orderExceptionType=='line_loop_exception'){
if(this.orderExceptionData.orderExceptionType=='line_loop_exception'){
if(['line_loop_exception','channel_packaging_overweight_exception','overweight_exception','not_shipping_channel_exception'].indexOf(this.orderExceptionData.orderExceptionType)>-1){
if(this.orderExceptionData.orderExceptionType=='line_loop_exception'||((this.orderExceptionData.orderExceptionType=='channel_packaging_overweight_exception'||this.orderExceptionData.orderExceptionType=='overweight_exception')&&this.handlerParams.orderExceptionHandlerResult=='allow_over')){
this.handlerParams.orderItemVOList = this.loopOrderItem
}else{
this.handlerParams.orderItemVOList = this.orderData.orderItemVOList
......@@ -1418,14 +1437,13 @@
return arr
},
//获取提交的不可出渠道异常商品清关费
getExceptionPriceList(type){
getExceptionPriceList(type,index){
let that = this
that.loopOrderItem =[]
if(type=='line_loop_exception'){
this.loopOrderItem =[]
that.orderData.orderItemVOList.map((v,i)=>{
if(v.orderItemId==this.orderExceptionData.orderItemId){
this.loopOrderItem.push(v)
if(v.orderItemId==that.orderExceptionData.orderItemId){
that.loopOrderItem.push(v)
}
})
}else{
......@@ -1442,6 +1460,9 @@
v.clearanceFreightCurrency = item.clearanceCurrencyId
v.clearanceFreightVolume = item.clearanceUnitId
}
if(item&&index==2){
that.loopOrderItem.push(v)
}
})
}
}
......
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