Commit 2c2bd060 authored by 我在何方's avatar 我在何方

更新异常

parent 65154a1c
......@@ -75,3 +75,11 @@ export function handlerExceptionByExceptionId(data){
data: data
})
}
// 根据商品ID获取商品详情
export function getOrderItemById(id) {
return request({
url: '/ecw/order-exception/getOrderItemById?id=' + id,
method: 'get'
})
}
This diff is collapsed.
......@@ -144,6 +144,20 @@ export const DICT_TYPE = {
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
PAYMENT_TYPE:'payment_type',//收款类型
ORDER_NO_QUOTE_EXCEPTION_RESULT:'order_no_quote_exception_result',//未报价异常处理结果
ORDER_SUPERFLUOUS_BOX_EXCEPTION_RESULT:'order_superfluous_box_exception_result',//多箱异常处理结果
ORDER_LACI_BOX_EXCEPTION_RESULT:'order_lack_box_exception_result',//少箱异常处理结果
ORDER_PAY_EXCEPTION_RESULT:'order_pay_exception_result',//预付异常处理结果
ORDER_MISS_EXCEPTION_RESULT:'order_miss_exception_result',//货物丢失异常处理结果
ORDER_SUPERFLUOUS_GOODS_EXCEPTION_RESULT:'order_superfluous_goods_exception_result',//货物增多异常处理结果
ORDER_DAMAGE_EXCEPTION_RESULT:'order_damage_exception_result',//货物破损异常处理结果
ORDER_IN_WATER_EXCEPTION_RESULT:'order_in_water_exception_result',//货物浸水异常处理结果
ORDER_HEAVY_CARGO_EXCEPTION_RESULT:'order_heavy_cargo_exception_result',//重货异常处理结果
ORDER_DOC_EXCEPTION_RESULT:'order_doc_exception_result',//单证异常处理结果
ORDER_CONSIGNOR_EXCEPTION_RESULT:'order_consignor_exception_result',//发货人异常处理结果
ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果
ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'fee_type',
......
......@@ -4,26 +4,26 @@
<div style="text-align: center;font-weight: bold;font-size: 20px;">收款单</div>
<div style="margin-top: 20px;">
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">部门:</span><span>{{form?form.departmentName:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">部门:</div><span>{{form?form.departmentName:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">收款单号:</span><span>{{form?form.receiptNo:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">收款日期:</span><span>{{form?form.payedAt:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">收款单号:</div> <span>{{form?form.receiptNo:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">收款日期:</div><span>{{form?form.payedAt:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">客户名称:</span><span>{{form?form.customerName:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">收款户名:</span><span>{{form?form.platformAccount:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">客户名称:</div><span>{{form?form.customerName:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">收款户名:</div><span>{{form?form.platformAccount:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">银行名称:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">银行账号:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">银行名称:</div><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">银行账号:</div><span>{{form?form.accountBank:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">水单号:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">手续费:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">水单号:</div><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">手续费:</div><span>{{form?form.accountBank:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;">
<div style="flex:1"><span style="width: 120px;text-align: right;">备注:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">备注:</div><span>{{form?form.accountBank:''}}</span></div>
</div>
</div>
<table border="1" style="margin-top: 20px;width: 100%;text-align: center;border-collapse: collapse; ">
......
......@@ -83,7 +83,7 @@
<el-table-column label="英文名" align="center" prop="prodTitleEn" />
<el-table-column label="品牌" width="100px">
<template slot-scope="scope">
{{scope.row.brand?'':''}}
<dict-tag :value="scope.row.brand" :type="DICT_TYPE.ECW_IS_BRAND" defaultable />
</template>
</el-table-column>
<el-table-column label="件数" width="90px" prop="num" />
......@@ -167,7 +167,7 @@
</el-descriptions>
<el-descriptions v-if="item.transportId==2">
<el-descriptions-item label="船公司">
{{item.airlineCompany}}
{{item.shippingCompany}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions v-if="[2,3,4].indexOf(item.transportId) > -1">
......
......@@ -5,17 +5,12 @@
<el-row>
<el-form-item >
<el-select v-model="queryParams.dateType" style="width: 172px;">
<el-option label="入仓时间" value="0"/>
<el-option label="处理时间" value="1"/>
<el-option label="入仓时间" value="1"/>
<el-option label="处理时间" value="2"/>
</el-select>
<el-date-picker
v-model="queryParams.date"
type="datetimerange"
style="margin-left: 10px;"
range-separator="到"
start-placeholder="请选择日期"
end-placeholder="请选择日期">
</el-date-picker>
<el-date-picker clearable v-model="queryParams.beginCreateTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="请选择开始日期" />
<span></span>
<el-date-picker clearable v-model="queryParams.endCreateTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="请选择结束日期" />
</el-form-item>
<el-form-item label="始发地:">
<el-select v-model="queryParams.originId" placeholder="请选择始发地">
......@@ -47,13 +42,13 @@
</el-row>
<el-row>
<el-form-item label="发货人:">
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
<customer-selector v-model="queryParams.consignor" @change="consignor = $event" />
</el-form-item>
<el-form-item label="唛头:">
<el-input v-model="queryParams.marks" placeholder="请输入唛头" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="品名:" prop="prodId">
<product-selector v-model="queryParams.prodId" @keyup.enter.native="handleQuery" />
<el-form-item label="品名:">
<product-selector v-model="queryParams.goodsName" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="备案:">
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/>
......@@ -61,13 +56,13 @@
</el-row>
<el-row>
<el-form-item label="跟进业务">
<el-select v-model="queryParams.followUpSalesmanId" placeholder="请选择跟进业务">
<el-select v-model="queryParams.salesmanId" placeholder="请选择跟进业务">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="reset">重置</el-button>
<!-- <el-button icon="el-icon-refresh" @click="reset">重置</el-button> -->
</el-form-item>
</el-row>
</el-form>
......@@ -85,7 +80,12 @@
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="订单号" align="center">
<template slot-scope="scope">
<span>{{scope.row.orderNo}}</span>
<span>{{specialNeedTag(scope.row.specialNeed)}}</span>
</template>
</el-table-column>
<el-table-column label="唛头" align="center" >
<template slot-scope="scope">
<span>{{scope.row.marks||''}}</span>
......@@ -168,21 +168,7 @@ export default {
// 查询参数
queryParams: {
page: 1,
rows: 10,
dateType:null,
date:null,
originId:null,
destinationId:null,
transportId:null,
isCargoControl:null,
orderExceptionStatus:null,
orderExceptionType:null,
orderNo:null,
consignorId:null,
marks:null,
prodId:null,
productRecord:null,
followUpSalesmanId:null
rows: 10
},
tradeCityList:[],
};
......@@ -198,7 +184,8 @@ export default {
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
}
},
},
methods: {
/** 查询列表 */
......@@ -218,20 +205,6 @@ export default {
this.queryParams = {
page: 1,
rows: 10,
dateType:undefined,
date:undefined,
originId:undefined,
destinationId:undefined,
transportId:undefined,
isCargoControl:undefined,
orderExceptionStatus:undefined,
orderExceptionType:undefined,
orderNo:undefined,
consignorId:undefined,
marks:undefined,
prodId:undefined,
productRecord:undefined,
followUpSalesmanId:undefined
};
this.resetForm("queryForm");
},
......@@ -247,6 +220,31 @@ export default {
this.$router.push({
path:"./pending?id="+id,
})
},
specialNeedTag(value){
var tag = ''
if(!value){
return
}
if(value.indexOf("1")!=-1||value.indexOf("2")!=-1){
tag += '(木)'
}
if(value.indexOf("3")!=-1){
tag += '(箱)'
}
if(value.indexOf("4")!=-1){
tag += '(袋)'
}
if(value.indexOf("5")!=-1){
tag += '(纸)'
}
if(value.indexOf("6")!=-1){
tag += '(垫)'
}
if(value.indexOf("7")!=-1){
tag += '(空)'
}
return tag
}
}
}
......
......@@ -8,13 +8,13 @@
{{orderData.marks?orderData.marks:''}}
</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">
{{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.num:0}}
{{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.totalNum:0}}
</el-descriptions-item>
<el-descriptions-item label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" />
</el-descriptions-item>
<el-descriptions-item label="送货日期">
<span v-if="orderData">{{orderData.status>=5?(orderData.orderItemVOList.length>0?orderData.orderItemVOList[0].warehouseInInfoVO.inTime:''):(orderData.consigneeVO?orderData.consigneeVO.deliveryDate:'')}}</span>
<span v-if="orderData">{{orderData.status>=5?(orderData.orderItemVOList.length>0?orderData.orderItemVOList[0].warehouseInInfoVO.firstInTime:''):(orderData.consigneeVO?orderData.consigneeVO.deliveryDate:'')}}</span>
</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
......@@ -65,54 +65,61 @@
</el-table-column>
<el-table-column label="异常描述" align="center">
<template slot-scope="scope">
<span>{{scope.row.orderExceptionRemark}}</span>
<span>{{scope.row.orderExceptionDescVO.descZh}}</span>
</template>
</el-table-column>
<el-table-column label="金额" align="center" scope="orderExceptionAmount" />
<el-table-column label="异常状态" align="center">
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionStatus" />
</template>
</el-table-column>
<el-table-column label="附件" align="center">
<template slot-scope="scope">
<span>{{scope.row.orderExceptionRemark}}</span>
<div class="filelist">
<span v-for="(item,index) in scope.row.orderExceptionAttr" :key="index" @click="onClickOpenPreview(item,scope.$index)">{{item}}</span>
</div>
</template>
</el-table-column>
<el-table-column label="处理人" align="center" prop="orderExceptionAmount" />
<el-table-column label="处理时间" align="center" prop='orderExceptionTime' />
<el-table-column label="处理人" align="center" prop="userName" />
<el-table-column label="处理时间" align="center" prop='handlerTime' />
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.id,scope.row.orderExceptionType)">处理</el-button>
<el-tag v-if="scope.row.orderExceptionStatus>0">已完成</el-tag>
<el-button v-else size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.id,scope.row.orderExceptionType)">处理</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<div class="preview" v-if="IsPreview">
<file-preview :key="timers" :TragetPic="TragetPic" :FilePreAll="FilePreAll" @Close="onClickClosePreview"></file-preview>
</div>
</div>
</template>
<script>
import {getExceptionListByOrderId} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order'
import FilePreview from '@/components/FilePreview'
export default {
name: "Pending",
components: {
FilePreview
},
data() {
return {
// 遮罩层
loading: false,
// 显示搜索条件
showSearch: true,
loading: true,
orderData:{},
// 订单异常列表
list: [],
tradeCityList:[],
orderId:0
orderId:0,
IsPreview:false, // 控制预览弹窗字段
timers:"", //时间戳
FilePreAll:[], // 预览数组
TragetPic:{},
};
},
created() {
......@@ -121,7 +128,6 @@ export default {
this.getList()
this.getOrders()
}
getTradeCityList().then(res => this.tradeCityList = res.data)
},
methods: {
/** 查询列表 */
......@@ -138,22 +144,72 @@ export default {
this.orderData = response.data
});
},
importCityName(id){
var arr = this.tradeCityList.filter(item => item.id == id)
return arr.length>0?arr[0].titleZh:''
},
handEdit(id, type){
// if(type == 3){
if(type == 8||type==15){
this.$router.push({
path:"/order/weightDeal?id="+id,
})
}else{
this.$router.push({
path:"/order/prepayDeal?id="+id,
})
// }
}
}
},
getFileName(fileName){
var fileArr = fileName.split('/')
return fileArr[fileArr.length-1]
},
getFileFormat(fileName){
var fileArr = this.getFileName(fileName).split('.')
return fileArr[fileArr.length-1]
},
// 打开预览
onClickOpenPreview(val,index){
this.TragetPic = { // 当前点击的文件
FileName: this.getFileName(val), // 文件名称
name: this.getFileName(val), // 文件名称(可以不传)
format:this.getFileFormat(val), // 文件格式
url: val, // 预览地址
downUrl:"", // 下载地址
} // 目标对象
if(this.list[index].orderExceptionAttr.indexOf(',')==-1){
this.FilePreAll.push(this.TragetPic)
}else{
var fileArr = this.list[index].orderExceptionAttr.split(',')
fileArr.forEach(item =>{ // 需要预览的文件数组(可以传空数组就是单张预览)
let obj = {
FileName: this.getFileName(item),
name: this.getFileName(item),
format:this.getFileFormat(item),
url: item,
downUrl:"",
}
this.FilePreAll.push(obj)
})
}
this.IsPreview = true // 打开预览弹窗
this.timers = new Date().getTime() // 刷新预览地址
},
// 关闭预览
onClickClosePreview(val){
this.IsPreview = val // 由组件内部传入的关闭数据赋值关闭
},
}
}
</script>
<style>
<style scoped>
.filelist{
display: flex;
flex-wrap: wrap;
align-items: center;
}
.filelist span{
width: 48%;
margin-right: 2%;
color: #1E98D7;
}
.card-title{
font-size: 18px;
font-weight: bold;
......
This diff is collapsed.
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-card>
<div slot="header" class="card-title">查看</div>
<el-descriptions :column="4">
<el-descriptions-item label="唛头">
{{orderData.marks?orderData.marks:''}}
</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">
{{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.totalNum:0}}
</el-descriptions-item>
<el-descriptions-item label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" />
</el-descriptions-item>
<el-descriptions-item label="送货日期">
<span v-if="orderData">{{orderData.status>=5?(orderData.orderItemVOList.length>0?orderData.orderItemVOList[0].warehouseInInfoVO.inTime:''):(orderData.consigneeVO?orderData.consigneeVO.deliveryDate:'')}}</span>
</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item>
<el-descriptions-item label="始发地">
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:''}}
</el-descriptions-item>
<el-descriptions-item label="目的地">
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destTitleZh:''}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4">
<el-descriptions-item label="发货人">
{{orderData.consignorVO?orderData.consignorVO.name||'':''}}
</el-descriptions-item>
<el-descriptions-item label="发货公司">
{{orderData.consignorVO?orderData.consignorVO.company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="发货电话">
{{orderData.consignorVO?orderData.consignorVO.phone||'':''}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4">
<el-descriptions-item label="收货人">
{{orderData.consigneeVO?orderData.consigneeVO.name||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货公司">
{{orderData.consigneeVO?orderData.consigneeVO.company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货电话">
{{orderData.consigneeVO?orderData.consigneeVO.phone||'':''}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="card">
<!-- 列表 -->
<div slot="header" class="card-title">货物信息</div>
<el-table v-loading="loading" border :data="orderData.orderItemVOList" :summary-method="getSummaries" show-summary>
<el-table-column label="序号" align="center" prop="id" type="index">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="品名" align="center" >
<template slot-scope="scope">
<p>{{scope.row.prodTitleEn||''}}</p>
<p>{{scope.row.prodTitleZh||''}}</p>
</template>
</el-table-column>
<el-table-column label="填单货物信息">
<template slot-scope="scope">
<p>品牌:<dict-tag :value="scope.row.brandType" :type="DICT_TYPE.ECW_IS_BRAND" /></p>
<p>箱数:{{scope.row.num||0}}</p>
<p>体积:{{scope.row.volume||0}}CBM</p>
<p>重量:{{scope.row.weight||0}}KG</p>
</template>
</el-table-column>
<el-table-column label="入库货物属性" align="center" >
<template slot-scope="scope">
<span>规格:{{scope.row.boxGauge||0}}</span>
<p>
<span>品牌:<dict-tag :value="scope.row.brand" :type="DICT_TYPE.ECW_IS_BRAND" /></span>
<span>箱数:{{scope.row.num||0}}</span>
<span>体积:{{scope.row.volume||0}}CBM</span>
<span>重量:{{scope.row.weight||0}}KG</span>
</p>
</template>
</el-table-column>
<el-table-column label="重货方数" align="center" >
<template slot-scope="scope">
<span>{{scope.row.ss||0}}CBM</span>
</template>
</el-table-column>
<el-table-column label="最后操作时间" scope="handlerTime" />
</el-table>
</el-card>
<div slot="footer" class="dialog-footer">
<div>
<el-button type="primary" @click="submit('general_cargo')">设为普货</el-button>
<el-button plain type="primary" @click="submit('process')">设为已处理</el-button>
</div>
</div>
</div>
</template>
<script>
import {getExceptionById,handlerExceptionByExceptionId} from "@/api/ecw/orderException"
import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order'
export default {
name: "WeightDeal",
components: {
},
data() {
return {
// 遮罩层
loading: false,
orderData:{},
list: {},
orderId:0,
};
},
created() {
if(this.$route.query.id){
this.id = this.$route.query.id
this.getList()
}
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 执行查询
getExceptionById(this.id).then(response => {
this.list = response.data;
this.loading = false;
this.getOrders()
});
},
getOrders(){
getOrder(this.list.orderId).then(response => {
this.orderData = response.data
});
},
getSummaries(){
const sums = [];
if(!this.orderData || !this.orderData.list ||ths.orderData.length==0){
return sums
}
sums[0] = '小计'
var orderSum = 0
var orderV = 0
var orderW = 0
var leviteSum = 0
var leviteV = 0
var leviteW = 0
this.orderData.list.forEach((column, index) => {
orderSum += column.orderSum
orderV += column.volume
orderW += column.weight
leviteSum += column.orderSum
leviteV += column.volume
leviteW += column.weight
});
sums[1] = ''
sums[2] = '下单统计:'+ orderSum+''+ orderV +'' + orderW + ' kg'
sums[3] = '入仓统计:'+ leviteSum+''+ leviteV +'' + leviteW + ' kg'
sums[4] = ''
sums[5] = ''
return sums;
},
submit(result){
handlerExceptionByExceptionId({orderExceptionId:this.list.id,orderExceptionHandlerResult:result}).then(res=>{
this.$modal.msgSuccess("提交成功");
this.$router.back()
})
}
}
}
</script>
<style scoped>
.filelist{
display: flex;
flex-wrap: wrap;
align-items: center;
}
.filelist span{
width: 48%;
margin-right: 2%;
color: #1E98D7;
}
.card-title{
font-size: 18px;
font-weight: bold;
margin-top: 10px;
}
.card{
margin-top: 20px;
}
</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