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'
})
}
<template>
<!-- 预览组件 -->
<div class="FilePreview">
<div class="container">
<!-- 渲染层 -->
<div class="object" v-if="TragetObj.format == 'jpg' || TragetObj.format == 'png' || TragetObj.format == 'JPG' || TragetObj.format == 'PNG' || TragetObj.format == 'jpeg'|| TragetObj.format == 'tiff'|| TragetObj.format == 'swf'|| TragetObj.format == 'gif'|| TragetObj.format == 'JPEG'|| TragetObj.format == 'GIF'"
ref="imgWrap" @mousewheel.prevent="rollImg">
<img class="Target modal-img" ref="img" @mousedown="moveImg" :src="TragetObj.url" alt="" >
</div>
<!-- 视频 -->
<div class="object" v-else-if="TragetObj.format == 'webm' || TragetObj.format == 'mov' || TragetObj.format == 'mp4'">
<video class="Target" controls="controls" width="1200" height="700" :src="TragetObj.url" autoplay ref="videoref" >
您的浏览器不支持。
</video>
</div>
<!-- 附件 -->
<div class="object" v-else>
<iframe class="Target" frameborder="1" index-render="1" scrolling="yes" height="890.15" width="1220.4" :src="TragetObj.url"></iframe>
</div>
<!-- 操作按钮 -->
<div class="viewer_btn">
<ul>
<li @click="onClickEnlarge">
<i class="el-icon-zoom-in"></i>
</li>
<li @click="onClickNarrow">
<i class="el-icon-zoom-out"></i>
</li>
<li @click="onClickReturnOriginal">
<i class="el-icon-c-scale-to-original"></i>
</li>
<!-- 下载 -->
<li v-if="TragetObj.downUrl">
<a :href="TragetObj.downUrl">
<i class="el-icon-download"></i>
</a>
</li>
<!-- <li>
<i class="el-icon-full-screen"></i>
</li> -->
</ul>
</div>
<!--下一个 -->
<div class="next" v-if="NumIndex < this.FilePresAll.length - 1" @click="onClickNext">
<i class="el-icon-arrow-right"></i>
</div>
<!-- 上一个 -->
<div class="previous" v-if="NumIndex != 0" @click="onCLickPrevious">
<i class="el-icon-arrow-left"></i>
</div>
<!-- 关闭按钮 -->
<div class="close" @click="onClickClose">
<i class="el-icon-close"></i>
</div>
</div>
<div class="viewer__mask" @click.stop="onClickClose">
<div v-loading="loadingFlag"></div>
</div>
</div>
</template>
<script>
export default {
name:"FilePreview",
props:['TragetPic', 'FilePreAll'],
data(){
return{
EleWidth:"",
EleHeight:"",
TragetObj:{}, // 目标对象
FilePresAll:[], // 渲染数组
NumIndex:0, // 当前渲染目标的下标
loadingFlag:false, // 加载
}
},
created(){
this.TragetObj = this.TragetPic // 目标对象
this.FilePresAll = this.FilePreAll // 渲染数组
},
mounted () {
if(this.EleWidth == ""){
if(this.TragetObj.format != 'jpg' && this.TragetObj.format != 'png' && this.TragetObj.format != 'JPG' && this.TragetObj.format != 'PNG' && this.TragetObj.format != 'jpeg' && this.TragetObj.format != 'tiff' && this.TragetObj.format != 'swf' && this.TragetObj.format != 'gif' && this.TragetObj.format != 'JPEG' && this.TragetObj.format != 'GIF'){
this.loadingFlag = true
}else{
this.loadingFlag = false
}
}
// 获取目标元素值
let Target = document.getElementsByClassName("Target")[0];
this.EleWidth = Target.offsetWidth
this.EleHeight = Target.offsetHeight
if(this.EleWidth != ""){
this.loadingFlag = false
}
// console.log(this.EleWidth)
// 获取当前目标的下标值
this.FilePresAll.forEach((item, index)=>{
if(item.FileName == this.TragetObj.FileName){
this.NumIndex = index
}
})
},
beforeUpdate () {
if(this.TragetObj.format != 'jpg' && this.TragetObj.format != 'png' && this.TragetObj.format != 'JPG' && this.TragetObj.format != 'PNG' && this.TragetObj.format != 'jpeg' && this.TragetObj.format != 'tiff' && this.TragetObj.format != 'swf' && this.TragetObj.format != 'gif' && this.TragetObj.format != 'JPEG' && this.TragetObj.format != 'GIF'){
this.loadingFlag = true
}else{
this.loadingFlag = false
}
this.$nextTick(()=>{
let eleParent = document.querySelector('.object')
// 获取目标元素值
let Target = eleParent.children[0]
this.EleWidth = Target.offsetWidth
this.EleHeight = Target.offsetHeight
// console.log(Target)
})
},
methods:{
// 放大功能
onClickEnlarge(){
let Target=document.getElementsByClassName("Target")[0];
Target.style.height=Target.height*1.1+'px';
Target.style.width=Target.width*1.1+'px';
},
// 缩小功能
onClickNarrow(){
let Target=document.getElementsByClassName("Target")[0];
Target.style.height=Target.height/1.1+'px';
Target.style.width=Target.width/1.1+'px';
},
// 返回原图大小
onClickReturnOriginal(){
let Target=document.getElementsByClassName("Target")[0];
Target.style.height=this.EleHeight+'px';
Target.style.width=this.EleWidth +'px';
},
// 点击下一个事件
onClickNext(){
if(this.NumIndex < this.FilePresAll.length - 1){
this.NumIndex++
this.TragetObj = this.FilePresAll[this.NumIndex]
}
},
// 点击上一个事件
onCLickPrevious(){
if(this.NumIndex != 0){
this.NumIndex--
this.TragetObj = this.FilePresAll[this.NumIndex]
}
},
// 关闭按钮
onClickClose(){
// 关闭视频声音
if(this.$refs.videoref != undefined){
this.$refs.videoref.pause()
}
this.$emit('Close', false)
},
// 拖拽图片事件
moveImg (e) {
e.preventDefault()
// 获取元素
let imgWrap = this.$refs.imgWrap
let img = this.$refs.img
let x = e.pageX - img.offsetLeft
let y = e.pageY - img.offsetTop
// 添加鼠标移动事件
imgWrap.addEventListener('mousemove', move)
function move (e) {
img.style.left = e.pageX - x + 'px'
img.style.top = e.pageY - y + 'px'
}
// 添加鼠标抬起事件,鼠标抬起,将事件移除
img.addEventListener('mouseup', () => {
imgWrap.removeEventListener('mousemove', move)
})
// 鼠标离开父级元素,把事件移除
imgWrap.addEventListener('mouseout', () => {
imgWrap.removeEventListener('mousemove', move)
})
},
// 鼠标滚动缩放图片事件
rollImg (event) {
/* 获取当前页面的缩放比 若未设置zoom缩放比,则为默认100%,即1,原图大小 */
let zoom = parseInt(this.$refs.img.style.zoom) || 100
/* event.wheelDelta 获取滚轮滚动值并将滚动值叠加给缩放比zoom wheelDelta统一为±120,其中正数表示为向上滚动,负数表示向下滚动 */
zoom += event.wheelDelta / 12
/* 最小范围 和 最大范围 的图片缩放尺度 */
if (zoom >= 40 && zoom < 500) {
this.$refs.img.style.zoom = zoom + '%'
}
return false
},
}
}
</script>
<style lang="scss" scoped>
.FilePreview{
position: fixed;
left: 0;
top: 0;
z-index: 8888;
height: 100%;
width: 100%;
.container{
display: flex;
flex-direction: column;
align-items:center;/*由于flex-direction: column,因此align-items代表的是水平方向*/
justify-content: center;/*由于flex-direction: column,因此justify-content代表的是垂直方向*/
position: relative;
left: 0;
top: 0;
height: 100%;
width: 100%;
.object{
z-index: 10001;
display: flex;
flex-direction: column;
align-items:center;/*由于flex-direction: column,因此align-items代表的是水平方向*/
justify-content: center;/*由于flex-direction: column,因此justify-content代表的是垂直方向*/
margin: 25px;
.modal-img {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
max-width: 100%;
cursor: move;
&-wrap {
position: relative;
width: 960px;
height: 560px;
overflow: hidden;
}
}
}
.viewer_btn{
position: absolute;
left: 50%;
bottom: 20px;
z-index: 10020;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
// width: 250px;
height: 44px;
padding: 0 23px;
background-color: #606266;
border-color: #fff;
border-radius: 22px;
ul{
padding: 0;
margin: 0;
display: flex;
justify-content: space-between;
align-items: center;
li{
font-size: 30px;
color: #fff;
padding: 6px 10px;
cursor: pointer;
}
}
}
.next{
position: absolute;
top: 50%;
right: 15px;
z-index: 10020;
font-size: 30px;
height: 44px;
width: 44px;
line-height: 44px;
text-align: center;
background: #606266;
color: #fff;
border-radius: 50%;
cursor: pointer;
}
.previous{
position: absolute;
top: 50%;
left: 15px;
z-index: 10020;
font-size: 30px;
height: 44px;
width: 44px;
line-height: 44px;
text-align: center;
background: #606266;
color: #fff;
border-radius: 50%;
cursor: pointer;
}
.close{
position: absolute;
top: 15px;
right: 15px;
z-index: 10020;
font-size: 30px;
cursor: pointer;
background: #606266;
border-radius: 50%;
width: 44px;
height: 44px;
line-height: 44px;
text-align: center;
}
}
.viewer__mask{
position: absolute;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.9);
top: 0;
left: 0;
z-index: 8888;
display: flex;
flex-direction: column;
align-items:center;/*由于flex-direction: column,因此align-items代表的是水平方向*/
justify-content: center;/*由于flex-direction: column,因此justify-content代表的是垂直方向*/
}
}
</style>
<style>
/* 关闭图标 */
.FilePreview .el-icon-close{
color: #fff;
}
</style>
......@@ -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;
......
......@@ -11,25 +11,28 @@
{{orderData?orderData.orderNo:''}}
</el-form-item>
</el-row>
<div v-if="orderExceptionData.orderExceptionType==1||orderExceptionData.orderExceptionType==2">
<el-row>
<el-form-item label="产品名称:">
{{orderData.totalMoney}}
<el-form-item label="产品名称:" >
{{shopData?shopData.prodTitleZh:''}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="英文名称:">
{{orderData.totalMoney}}
<el-form-item label="产品名称英文名称:">
{{shopData?shopData.prodTitleEn:''}}
</el-form-item>
</el-row>
</div>
<el-row>
<el-form-item label="运输路线:" >
<span v-if="orderData"><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /></span>
{{orderData?getRouterNameById(orderData.lineId):''}}
</el-form-item>
</el-row>
<div v-if="orderExceptionData.orderExceptionType!=3||orderExceptionData.orderExceptionType!=9||orderExceptionData.orderExceptionType!=10||orderExceptionData.orderExceptionType!=11">
<el-row>
<el-form-item label="填单参数:">
{{(orderData.sumNum||0)+''+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg'}}
{{(orderData.costVO?orderData.costVO.totalNum:0)+''+(orderData.costVO?orderData.costVO.totalVolume:0)+''+(orderData.costVO?orderData.costVO.totalWeight:0)+'kg'}}
</el-form-item>
</el-row>
<el-row>
......@@ -41,13 +44,20 @@
<el-form-item label="异常描述:">
{{orderData.totalMoney||''}}
</el-form-item>
<el-button type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
<el-button v-if="orderExceptionData.orderExceptionType==3" type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
</el-row>
<!-- <el-row :span="12">
<el-form-item label="详细内容:">
{{orderData.totalMoney||''}}
</el-form-item>
<el-button v-if="orderExceptionData.orderExceptionStatus==3" type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
</el-row> -->
</div>
</el-form>
<el-table v-loading="loading" border :data="orderData.orderItemVOList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column label="品名" align="center" prop="goodsType">
<el-table v-if="orderExceptionData.orderExceptionType==3" v-loading="loading" border :data="orderData.orderItemVOList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55">
</el-table-column> -->
<el-table-column label="品名" align="center">
<template slot-scope="scope">
{{scope.row.prodTitleZh+'('+scope.row.prodTitleEn+')'}}
</template>
......@@ -83,18 +93,33 @@
</template>
</el-table-column>
</el-table>
<el-form :model="orderData" ref="queryForms" size="small" :inline="true" label-width="120px" class="card">
<el-row>
<el-table v-if="orderExceptionData.orderExceptionType==9||orderExceptionData.orderExceptionType==10||orderExceptionData.orderExceptionType==11" v-loading="loading" border :data="orderData.orderItemVOList">
<el-table-column label="中文名" align="center" prop="prodTitleZh" />
<el-table-column label="英文名" align="center" prop="prodTitleEn" />
<el-table-column label="品牌" align="center" prop="brand" />
<el-table-column label="填单箱数" prop="num" />
<el-table-column label="入仓箱数">
<template slot-scope="scope">
{{scope.row.warehouseInInfoVO.cartonsNum}}
</template>
</el-table-column>
<el-table-column label="方数" prop="volume" />
<el-table-column label="重量" prop="weight" />
<el-table-column label="数量" prop="quantity" />
<el-table-column label="货值" prop="worth" />
</el-table>
<el-form :model="handlerParams" ref="queryForms" size="small" :inline="true" label-width="120px" class="card">
<el-row v-if="orderExceptionData.orderExceptionType==3">
<el-form-item label="应付金额:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-row v-if="orderExceptionData.orderExceptionType==3">
<el-form-item label="核销金额:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-row v-if="orderExceptionData.orderExceptionType==3">
<el-form-item label="核销比例:">
{{orderData.totalMoney}}
</el-form-item>
......@@ -102,7 +127,7 @@
<el-row>
<el-form-item label="处理结果:" >
<el-select v-model="handlerParams.orderExceptionHandlerResult">
<el-option v-for="dict in this.getDictDatas('order_pay_exception_result')"
<el-option v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')"
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
......@@ -112,6 +137,28 @@
<el-input style="width: 500px;" type="textarea" v-model="handlerParams.orderExceptionHandlerRemark" />
</el-form-item>
</el-row>
<el-row :span="8" v-if="orderExceptionData.orderExceptionType==9">
<el-form-item label="报关资料:" size="medium">
<file-upload v-model="handlerParams.fileList" :value="orderExceptionData.file" ></file-upload>
</el-form-item>
</el-row>
<div v-if="orderExceptionData.orderExceptionType==4||orderExceptionData.orderExceptionType==5||orderExceptionData.orderExceptionType==6||orderExceptionData.orderExceptionType==7">
<el-row >
<el-form-item label="详细内容:">
{{orderExceptionData.content}}
</el-form-item>
</el-row>
<el-row >
<el-form-item label="状态:">
<dict-selector :type="DICT_TYPE.ORDER_ERROR_TYPE" v-model="handlerParams.orderExceptionStatus" />
</el-form-item>
</el-row>
<el-row >
<el-form-item label="*查明原因:">
{{orderExceptionData.content}}
</el-form-item>
</el-row>
</div>
</el-form>
</el-card>
<div slot="footer" class="dialog-footer">
......@@ -119,21 +166,22 @@
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button plain type="primary" @click="$router.back()">取消</el-button>
</div>
<el-button type="primary" @click="submitForm">转交</el-button>
<el-button v-if="orderExceptionData.orderExceptionStatus==3" type="primary" @click="submitForm">转交</el-button>
</div>
</div>
</template>
<script>
import {DICT_TYPE} from '@/utils/dict'
import FileUpload from '@/components/FileUpload'
import {getDictData, getDictDatas} from '@/utils/dict'
import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse'
import {getOrder} from '@/api/ecw/order'
import {getExceptionById,handlerExceptionByExceptionId} from "@/api/ecw/orderException"
import {getExceptionById,handlerExceptionByExceptionId,getOrderItemById} from "@/api/ecw/orderException"
export default {
name: "PrepayDeal",
components: {
FileUpload
},
data() {
return {
......@@ -149,6 +197,7 @@
handlerParams:{
orderExceptionId:0
},
shopData:{},
//发货/收货人信息
consigneeData:[],
routerList:[],
......@@ -169,9 +218,13 @@
that.loading = true;
getExceptionById(that.orderExceptionId).then(response => {
that.orderExceptionData = response.data;
that.handlerParams.orderExceptionStatus = response.data.orderExceptionStatus
that.loading = false;
that.orderId = response.data.orderId
that.getOrderData()
if(response.data.hasOwnProperty('orderItemId')){
that.getShopData(response.data.orderItemId)
}
});
},
getOrderData(){
......@@ -179,6 +232,11 @@
this.orderData = response.data
});
},
getShopData(id){
getOrderItemById(id).then(res=>{
this.shopData = res.data
})
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
......@@ -205,12 +263,11 @@
// }
},
submitForm(){
handlerExceptionByExceptionId(that.orderExceptionId).then(response => {
that.orderExceptionData = response.data;
that.loading = false;
that.orderId = response.data.orderId
this.getOrderData()
});
console.log(this.handlerParams)
handlerExceptionByExceptionId(this.handlerParams).then(res=>{
this.$modal.msgSuccess("提交成功");
this.$router.back()
})
},
/** 跟进按钮操作 */
handleAdd() {
......@@ -233,7 +290,7 @@
margin-top: 10px;
}
.header{
width: 60%;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
......
<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