<template> <div class="app-container"> <el-card> <div slot="header" class="header"> <div class="card-title">{{$t('查看')}}</div> <el-button type="primary" icon="el-icon-arrow-left" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button> </div> <el-form v-if="orderData" :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card"> <el-row> <el-form-item :label="$t('订单号')+':'"> {{orderData.orderNo || ''}} </el-form-item> </el-row> <div v-if="shopData&&orderExceptionData.orderExceptionType!='goods_add_exception'"> <el-row> <el-form-item :label="$t('产品名称')+':'" > {{shopData.prodTitleZh || ''}} </el-form-item> </el-row> <el-row> <el-form-item :label="$t('产品英文名称')+':'"> {{shopData.prodTitleEn || ''}} </el-form-item> </el-row> </div> <el-row> <el-form-item :label="$t('运输路线')+':'" > <span v-if="orderData">{{ $t('【') }}<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />{{ $t('】') }}</span> {{orderData?getRouterNameById():''}} </el-form-item> </el-row> <!-- 单证异常,发货人异常,其他异常 不显示这部分内容 --> <div v-if="['order_doc_exception','order_consignor_exception', 'order_other_exception'].indexOf(orderExceptionData.orderExceptionType) == -1"> <!-- 预付异常,提货异常,代收货款是针对整个订单的 --> <template v-if="['order_pay_exception','order_pick_up_exception', 'order_cod_exception','not_customer_service_exception'].indexOf(orderExceptionData.orderExceptionType) > -1"> <el-row> <el-form-item :label="$t('填单参数')+':'"> <template v-if="orderData && orderData.costVO"> {{(orderData.costVO.totalNum||0)+$t('箱 ')+(orderData.costVO.totalVolume||0)+'m³ '+(orderData.costVO.totalWeight||0)+'kg '+(orderData.costVO.totalQuantity||0)+$t('个')}} </template> </el-form-item> <el-form-item :label="$t('代收金额')+':'" v-if="orderExceptionData.orderExceptionType == 'order_cod_exception'"> <template v-if="orderData && orderData.costVO"> {{orderExceptionData.orderExceptionAmount}} {{currencyMap[orderExceptionData.orderExceptionAmountCurrencyId]}} </template> </el-form-item> </el-row> <el-row> <el-form-item :label="$t('入仓参数')+':'"> <template v-if="orderData && orderData.costVO"> <span>{{(orderData.sumNum||0)+$t('箱')+(orderData.sumVolume||0)+'m³ '+(orderData.sumWeight||0)+'kg '+(orderData.sumQuantity||0) +$t('个')}}</span> </template> </el-form-item> </el-row> </template> <template v-else> <el-row v-if="shopData"> <el-form-item :label="$t('填单参数')+':'"> <template > {{$t('{num}箱 {volume}m³ {weight}kg {quantity}个', { num: shopData.num || 0, volume: shopData.volume || 0, weight: shopData.weight || 0, quantity: shopData.quantity || 0 })}} </template> </el-form-item> </el-row> <el-row v-if="shopData"> <el-form-item :label="$t('入仓参数')+':'" ><template v-if="shopData.warehouseInInfoVO"> {{$t('{num}箱 {volume}m³ {weight}kg {quantity}个', { num: shopData.warehouseInInfoVO.cartonsNum || 0, volume: shopData.warehouseInInfoVO.volume || 0, weight: shopData.warehouseInInfoVO.weight || 0, quantity: shopData.warehouseInInfoVO.quantityAll || 0 })}}</template> <!-- <span>{{(orderData.sumNum||0)+$t('箱')+(orderData.sumVolume||0)+'m³ '+(orderData.sumWeight||0)+'kg '+(orderData.sumQuantity||0) +$t('个')}}</span> --> <template v-else>{{$t('无入仓数据')}}</template> </el-form-item> </el-row> </template> <el-row :span="12"> <el-form-item :label="$t('异常描述')+':'"> <!-- <dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="orderExceptionData.orderExceptionType" /> --> <!-- {{orderExceptionData.orderExceptionDescVO?orderExceptionData.orderExceptionDescVO.descZh:'无'}} --> {{$l(orderExceptionData.orderExceptionDescVO, 'desc')}} </el-form-item> <el-button v-if="orderExceptionData.orderExceptionType=='order_pay_exception'&&orderExceptionData.orderExceptionStatus!=2" type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">{{ $t('新增收款单') }}</el-button> </el-row> <el-row v-if="orderExceptionData.orderExceptionDetails"> <el-form-item :label="$t('详细内容')+':'"> <span>{{orderExceptionData.orderExceptionDetails}}</span> </el-form-item> </el-row> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType=='goods_add_exception'"> <el-form-item :label="$t('收费参数')+':'"> <span>{{orderData.sumNum||0}}{{$t('箱')}} {{orderData.wvolume||0}}m³ {{orderData.vweight||0}}Kg {{orderData.sumQuantity||0}}{{$t('个')}}</span> </el-form-item> </el-row> <el-row> <el-form-item :label="$t('创建时间')+':'"> <span>{{parseTime(orderExceptionData.createTime)}}</span> </el-form-item> </el-row> <el-row> <el-form-item :label="$t('处理时间')+':'"> <span>{{parseTime(orderExceptionData.handlerTime)||'/'}}</span> </el-form-item> </el-row> </div> </el-form> <!-- 预付异常的表格 --> <el-table v-if="orderExceptionData.orderExceptionType=='order_pay_exception'" v-loading="loading" border :data="preException"> <el-table-column :label="$t('品名')" align="center"> <template slot-scope="scope"> {{scope.row.titleZh+'('+scope.row.titleEn+')'}} </template> </el-table-column> <el-table-column :label="$t('箱数')" prop="num" /> <el-table-column :label="$t('体积/重量')"> <template slot-scope="scope"> {{scope.row.volume+'/'+scope.row.weight}} </template> </el-table-column> <el-table-column :label="$t('收款类型')"> <template > {{$t('预付')}} </template> </el-table-column> <el-table-column :label="$t('收入类型')"> <template slot-scope="scope"> <dict-tag :type="DICT_TYPE.FEE_TYPE" :value="scope.row.feeType"></dict-tag> </template> </el-table-column> <el-table-column :label="$t('应收金额')" prop="totalAmount" > <template slot-scope="{row}"> {{row.totalAmount}} {{ currencyMap[row.currencyId] }} </template> </el-table-column> <el-table-column :label="$t('付款人')"> <template slot-scope="{row}"> <span> <dict-tag :type="DICT_TYPE.DRAWEE" :value="row.paymentUser"></dict-tag> </span> </template> </el-table-column> <el-table-column :label="$t('付款状态')" prop="worth"> <template slot-scope="scope"> <dict-tag :type="DICT_TYPE.ECW_RECEIVABLE_STATE" :value="scope.row.state"></dict-tag> </template> </el-table-column> </el-table> <!-- 单证异常,发货人异常,其他异常的表格 --> <el-table v-if="['order_doc_exception', 'order_consignor_exception', 'order_other_exception'].indexOf(orderExceptionData.orderExceptionType) > -1" v-loading="loading" border :data="orderData.orderItemVOList"> <el-table-column :label="$t('序号')" align="center" prop="id" type="index"> <template slot-scope="scope"> <span>{{scope.$index + 1}}</span> </template> </el-table-column> <el-table-column :label="$t('中文名')" align="center" prop="prodTitleZh" /> <el-table-column :label="$t('英文名')" align="center" prop="prodTitleEn" /> <el-table-column :label="$t('品牌')" align="center" prop="brandType"> <template slot-scope="scope"> <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType"></dict-tag> </template> </el-table-column> <el-table-column :label="$t('填单箱数')" prop="num" /> <el-table-column :label="$t('入仓箱数')"> <template slot-scope="scope"> {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.cartonsNum:0}} </template> </el-table-column> <el-table-column :label="$t('方数')" prop="volume"> <template slot-scope="scope"> {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.volume:0}} </template> </el-table-column> <el-table-column :label="$t('重量')" prop="weight"> <template slot-scope="scope"> {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.weight:0}} </template> </el-table-column> <el-table-column :label="$t('数量')" prop="quantity"> <template slot-scope="scope"> {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.quantityAll:0}} </template> </el-table-column> <el-table-column :label="$t('货值')" prop="worth" /> </el-table> <!-- 未分配客户经理 --> <div v-if="orderExceptionData.orderExceptionType=='not_customer_service_exception'"> <el-row :gutter="20"> <el-col :span="8" v-if="orderData.consignorVO"> <el-descriptions class="margin-top" border :title="$t('发货人')" :column="1" :labelStyle="{width:'150px'}"> <el-descriptions-item :label="$t('发货人')">{{orderData.consignorVO.name}}</el-descriptions-item> <el-descriptions-item :label="$t('发货人电话')"> +{{orderData.consignorVO.countryCode}} {{orderData.consignorVO.phone}} </el-descriptions-item> <el-descriptions-item :label="$t('发货人邮箱')">{{orderData.consignorVO.email}}</el-descriptions-item> <el-descriptions-item :label="$t('发货人公司名称')"> {{orderData.consignorVO.company}} </el-descriptions-item> </el-descriptions> </el-col> <el-col :span="16" v-if="orderData.consigneeVO"> <el-descriptions class="margin-top" border :title="$t('收货人')" :column="2" :labelStyle="{width:'150px'}"> <el-descriptions-item :label="$t('收货人')">{{orderData.consigneeVO.name}}</el-descriptions-item> <el-descriptions-item :label="$t('收货人电话')"> +{{orderData.consigneeVO.countryCode}} {{orderData.consigneeVO.phone}} </el-descriptions-item> <el-descriptions-item :label="$t('收货人邮箱')">{{orderData.consigneeVO.email}}</el-descriptions-item> <el-descriptions-item :label="$t('收货人公司名称')"> {{orderData.consigneeVO.company}} </el-descriptions-item> <el-descriptions-item :label="$t('收货方式')"> <dict-tag :type="DICT_TYPE.ECW_HARVEST_METHOD" :value="orderData.consigneeVO.harvestMethod" /> </el-descriptions-item> <el-descriptions-item :label="$t('收货地区')"> {{region}} </el-descriptions-item> <el-descriptions-item :label="$t('收货地址')"> {{orderData.consigneeVO.address}} </el-descriptions-item> </el-descriptions> </el-col> </el-row> <div class="link-text"> <router-link :to="{path: '/customer/query/'+orderData.customerId}" class="link-type"> <span>{{$t('归属客户')}}:{{ customerData.name||'' }} </span><span>{{$t('客户编号')}}:{{ customerData.number||'' }}</span> </router-link> </div> </div> <el-form :model="handlerParams" ref="queryForms" size="small" :inline="true" label-width="120px" class="card"> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'"> <el-form-item :label="$t('订单总金额')+':'"> <span style="margin-left: 8px;" v-for="(item, key) of orderFee.totalAmountList" :key="key"> {{item}} {{currencyMap[key]}} </span> </el-form-item> </el-row> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'"> <el-form-item :label="$t('应付预付金额')+':'"> <span style="margin-left: 8px;" v-for="(item, key) of orderFee.totalPaymentAmount" :key="key">{{item}}{{currencyMap[key]}}</span> </el-form-item> </el-row> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'"> <el-col :span="6"> <el-form-item :label="$t('已核销预付金额')+':'"> <span v-if="JSON.stringify(orderFee.writeOffAmount) != '{}'" style="margin-left: 8px;" v-for="(item, key) of orderFee.writeOffAmount" :key="key">{{item}}{{currencyMap[key]}}</span> <span v-if="JSON.stringify(orderFee.writeOffAmount) == '{}'">0</span> </el-form-item> </el-col> <el-col :span="12"> <el-form-item :label="$t('已核销预付金额占总金额比例')+':'" label-width="320px"> {{orderFee.writeOffAmountScale}}% </el-form-item> </el-col> </el-row> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'" > <el-col :span="6"> <el-form-item :label="$t('预付商品货值')+':'"> {{orderFee.paymentGoodsWorth}} {{$t('人民币')}} </el-form-item> </el-col> <el-col :span="12"> <el-form-item :label="$t('预付商品货值占总货值比例')+':'" label-width="320px"> {{orderFee.paymentGoodsWorthScale}}% </el-form-item> </el-col> </el-row> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'"> <el-col :span="6"> <el-form-item :label="$t('预付商品方数')+':'"> {{orderFee.paymentGoodsVolume}} {{$t('立方米')}} </el-form-item> </el-col> <el-col :span="12"> <el-form-item :label="$t('预付商品货值占订单总运费+清关费比例')+':'" label-width="320px"> {{orderFee.needWorthScale}}% </el-form-item> </el-col> </el-row> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'"> <el-col :span="6"> <el-form-item :label="$t('订单总方数')+':'"> {{orderFee.totalVolume}} {{$t('立方米')}} </el-form-item> </el-col> <el-col :span="12"> <el-form-item :label="$t('预付商品方数占总方数比例')+':'" label-width="320px"> {{orderFee.paymentGoodsVolumeScale}}% </el-form-item> </el-col> </el-row> <el-row :span="12" v-if="orderExceptionData.orderExceptionType=='order_doc_exception'"> <el-form-item v-if="orderExceptionData.orderExceptionStatus!=2" :label="$t('报关资料')+':'" size="medium" :require="true"> <file-upload v-model="handlerParams.fileList" :value="orderExceptionData.orderExceptionAttr" ></file-upload> </el-form-item> </el-row> <el-form-item :label="$t('附件')" align="center" v-if="orderExceptionData.orderExceptionType=='order_other_exception'"> <template slot-scope="scope"> <div class="filelist"> <span v-for="(item,index) in handlerParams.fileList" :key="index" @click="onClickOpenPreview(item,index)">{{'附件'+(index+1)}}</span> </div> </template> </el-form-item> <!--预付异常的备选需要根据接口数据过滤--> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType=='not_customer_service_exception'"> <el-form-item :label="$t('处理结果')+':'" required> <el-select v-model="handlerParams.orderExceptionHandlerResult" :placeholder="$t('请选择')" clearable :disabled="orderExceptionData.orderExceptionStatus==2"> <template v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')"> <el-option :disabled="orderFee && orderFee.result && orderFee.result.indexOf(dict.value) ==-1" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/> </template> </el-select> </el-form-item> </el-row> <el-row v-else-if="orderExceptionData.orderExceptionType!='order_miss_exception'&&orderExceptionData.orderExceptionType!='order_superfluous_goods_exception'&&orderExceptionData.orderExceptionType!='order_in_water_exception'&&orderExceptionData.orderExceptionType!='order_damage_exception'"> <el-form-item :label="$t('处理结果')+':'" required> <el-select v-model="handlerParams.orderExceptionHandlerResult" :placeholder="$t('请选择')" clearable @change="handlerResultChange" :disabled="orderExceptionData.orderExceptionStatus==2"> <template v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')"> <el-option :disabled="dict.value=='pending'" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/> </template> </el-select> </el-form-item> </el-row> <!-- v1.7新增商品异常 --> <div v-if="shopData&&orderExceptionData.orderExceptionType=='goods_add_exception'&&handlerParams.orderExceptionHandlerResult=='goods_exists'"> <el-row :gutter="24"> <el-col :span="6"> <el-form-item :label="$t('新增品名中文')+':'" > {{shopData.prodTitleZh || ''}} </el-form-item> </el-col> <el-form-item label="中文品名" :rules="{ required: true, message: $t('请选择产品'), trigger: 'blur' }" class="mb-0 mr-0" > <product-selector :status="0" :disabled="orderExceptionData.orderExceptionStatus==2" @hook:mounted="onTableMounted" v-model="productId2" @change = "onProductChange($event)" /> </el-form-item> </el-row> <el-row :gutter="24"> <el-col :span="6"> <el-form-item :label="$t('新增品名英文')+':'"> {{shopData.prodTitleEn || ''}} </el-form-item> </el-col> <el-form-item label="英文品名" :rules="{ required: true, message: $t('请选择产品'), trigger: 'blur' }" class="mb-0 mr-0" > <product-selector lang="En" :status="0" v-model="productId1" :disabled="orderExceptionData.orderExceptionStatus==2" @change = "onProductChange($event)" /> </el-form-item> </el-row> </div> <el-row v-if="orderExceptionData.orderExceptionType=='not_customer_service_exception'&&handlerParams.orderExceptionHandlerResult=='allocate'"> <el-form-item :label="$t('移交客户经理')+':'" required> <el-select v-model="handlerParams.customerService" :placeholder="$t('请选择客户经理')" clearable :disabled="orderExceptionData.orderExceptionStatus==2"> <el-option v-for="dict in customerServiceList" :key="dict.id" :label="dict.nickname" :value="dict.id"/> </el-select> </el-form-item> </el-row> <!-- 代收货款 时需要填写代收金额 --> <el-row v-if="handlerParams.orderExceptionHandlerResult == 'cod'" > <el-form-item :label="$t('代收金额')+':'" size="medium" required> <el-input class="w-100" type="text" v-model="handlerParams.amount" :disabled="orderExceptionData.orderExceptionStatus==2" /> <!-- <el-select v-model="handlerParams.currency" clearable> <el-option v-for="dict in getDictDatas('shipping_price_unit') " :key="dict.value" :label="dict.label" :value="dict.value"/> </el-select> -->{{getCurrencyLabel(handlerParams.currency)}} <!-- <dict-tag type="shipping_price_unit" v-model="handlerParams.currency" class="w-100 ml-10" /> --> </el-form-item> </el-row> <el-row :span="8" v-if="orderExceptionData.orderExceptionType=='order_pick_up_exception'&&handlerParams.orderExceptionHandlerResult=='cost_required'"> <el-form-item :label="$t('送货费用')+':'" size="medium"> <el-input style="width: 100px;" type="text" v-model="handlerParams.amount" :disabled="orderExceptionData.orderExceptionStatus==2"/> <el-select v-model="handlerParams.currency" style="width: 100px;margin-left: 10px;" clearable :disabled="orderExceptionData.orderExceptionStatus==2"> <el-option v-for="dict in currencyList " :key="dict.id" :label="dict.titleZh" :value="dict.id"/> </el-select> </el-form-item> </el-row> <el-row :span="8" v-if="orderExceptionData.orderExceptionType!='not_customer_service_exception'&&orderExceptionData.orderExceptionType!='goods_add_exception'"> <el-form-item :label="$t('备注')+':'" size="medium"> <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=='order_miss_exception'||orderExceptionData.orderExceptionType=='order_superfluous_goods_exception'||orderExceptionData.orderExceptionType=='order_in_water_exception'||orderExceptionData.orderExceptionType=='order_damage_exception'"> <el-row > <el-form-item :label="$t('状态')+':'"> <el-radio-group v-model="handlerParams.orderExceptionStatus" @change="changeExceptionStatus" :disabled="orderExceptionData.orderExceptionStatus==2"> <el-radio label="1">{{$t('处理中')}}</el-radio> <el-radio label="2">{{$t('已处理')}}</el-radio> </el-radio-group> </el-form-item> </el-row> <el-row> <el-form-item :label="$t('处理结果')+':'" required v-if="handlerParams.orderExceptionStatus==2"> <el-select v-model="handlerParams.orderExceptionHandlerResult" :placeholder="$t('请选择')" clearable :disabled="orderExceptionData.orderExceptionStatus==2"> <el-option v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_don_result')" :key="dict.value" :label="dict.label" :value="dict.value"/> </el-select> </el-form-item> </el-row> <el-row > <el-form-item :label="$t('赔付金额')+':'" size="medium" required v-if="handlerParams.orderExceptionStatus==2"> <el-input style="width: 100px;" type="text" v-model="handlerParams.amount" :disabled="orderExceptionData.orderExceptionStatus==2" /> <el-select v-model="handlerParams.currency" style="width: 100px;margin-left: 10px;" clearable :disabled="orderExceptionData.orderExceptionStatus==2"> <el-option v-for="dict in currencyList " :key="dict.id" :label="dict.titleZh" :value="dict.id"/> </el-select> </el-form-item> </el-row> <el-row> <el-form-item :label="$t('查明原因')+':'" required v-if="handlerParams.orderExceptionStatus==1"> <el-select v-model="handlerParams.orderExceptionHandlerResult" clearable :disabled="orderExceptionData.orderExceptionStatus==2"> <el-option v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')" :key="dict.value" :label="dict.label" :value="dict.value"/> </el-select> </el-form-item> </el-row> </div> </el-form> </el-card> <!-- 只有不需要预付才需要审核 --> <template v-if="showWorkFlow&&orderExceptionData.orderExceptionStatus!=2"> <div class="page-title">{{$t('审批流程')}}</div> <work-flow xmlkey="commission_config" v-model="handlerParams.ccIds" /> </template> <div slot="footer" class="dialog-footer"> <!-- bpmStatus 异常流程状态,1处理中2通过3不通过4已取消 待审核可能没有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 plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button> </template> <template v-else-if="orderExceptionData.orderExceptionStatus==2"> <el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button> </template> <template v-else> <el-button type="primary" @click="submitForm">{{$t('提交')}}</el-button> <el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('取消')}}</el-button> </template> </div> <div class="preview" v-if="IsPreview"> <file-preview :key="timers" :TragetPic="TragetPic" :FilePreAll="FilePreAll" @Close="onClickClosePreview"></file-preview> </div> </div> </template> <script> import FileUpload from '@/components/FileUpload' import {getDictData, getDictDatas} from '@/utils/dict' import {getOrder} from '@/api/ecw/order' import FilePreview from '@/components/FilePreview' import { getCurrencyList } from '@/api/ecw/currency' import {getExceptionById,handlerExceptionByExceptionId,getOrderItemById,getOrderFeeById,getOrderExcptionResult} from "@/api/ecw/orderException" import {getFirstReceivableListByOrderId} from '@/api/ecw/financial' import WorkFlow from '@/components/WorkFlow' import {listByIds} from '@/api/ecw/region' import {listServiceUser} from "@/api/system/user"; import {cancelProcessInstance} from '@/api/bpm/processInstance' import {getCustomer} from '@/api/ecw/customer' import ProductSelector from '@/components/ProductSelector' export default { name: "PrepayDeal", components: { FileUpload, WorkFlow,FilePreview,ProductSelector }, data() { return { // 遮罩层 loading: false, orderExceptionData: {}, types:'package,bag', importance:1, orderData:{ }, orderId:0, orderExceptionId:0, handlerParams:{ orderExceptionId:0, orderExceptionStatus:"1", orderExceptionHandlerResult:'' }, //发货/收货人信息 consigneeData:[], routerList:[], multipleSelection:[], preException:[], orderFee:[], currencyList:[], showWorkFlow: false, // 是否显示工作流 IsPreview:false, // 控制预览弹窗字段 timers:"", //时间戳 FilePreAll:[], // 预览数组 TragetPic:{}, region:'', customerData:{},//归属客户 customerServiceList:[],//客户经理 productId1:null, productId2:null }; }, created() { if(this.$route.query.id){ this.orderExceptionId = this.$route.query.id this.handlerParams.orderExceptionId = this.$route.query.id this.getList() } listServiceUser().then(r=>{ this.customerServiceList = r.data; }) getCurrencyList().then(res => this.currencyList = res.data) }, watch:{ 'handlerParams.orderExceptionHandlerResult'(val){ if(val == 'no_pay'){ this.showWorkFlow = true }else this.showWorkFlow = false // 如果是代收货款,则给默认单位 if(val == 'cod' && this.orderExceptionData.orderExceptionAmountCurrencyId){ this.$set(this.handlerParams, 'currency', this.orderExceptionData.orderExceptionAmountCurrencyId) } }, 'orderData.consigneeVO'(val){ if(!val) return '-' listByIds({ids: [val.country, val.province, val.city].join(',')}).then(res => { console.log('listById', res) let region = '' res.data.forEach(item => { region += " " + item.titleZh }) this.region = region }) } }, computed: { currencyMap(){ let map = {} this.currencyList.forEach(item => { map[item.id] = this.$l(item, 'title') }) return map }, shopData(){ if(this.orderExceptionData.orderItemId && this.orderData && this.orderData.orderItemVOList){ if(this.orderExceptionData.orderExceptionType=='goods_add_exception'&&!this.handlerParams.productId){ this.handlerParams.productId = this.orderData.orderItemVOList.find(item => item.orderItemId == this.orderExceptionData.orderItemId).prodId // this.productId1 = this.handlerParams.productId // this.productId2 = this.handlerParams.productId } return this.orderData.orderItemVOList.find(item => item.orderItemId == this.orderExceptionData.orderItemId) } } }, methods: { onTableMounted(e){ // console.warn('onTableMounted', e) }, /** 查询列表 */ getCurrencyLabel(id){ var label = this.currencyList.filter(item=>item.id == id) if(label.length>0) return label[0].titleZh return '' }, getList() { let that = this that.loading = true; getExceptionById(that.orderExceptionId).then(response => { that.orderExceptionData = response.data; // that.orderExceptionData.orderExceptionType = 'order_other_exception' // that.orderExceptionData.orderExceptionType = 'order_miss_exception' // that.orderExceptionData.orderExceptionType = 'not_customer_service_exception' // that.orderExceptionData.orderExceptionType = 'goods_add_exception' that.loading = false; that.orderId = response.data.orderId that.getOrderData() if(that.orderExceptionData.orderExceptionAttr){ that.handlerParams.fileList = that.orderExceptionData.orderExceptionAttr.split(',') } // if(response.data.hasOwnProperty('orderItemId')){ // that.getShopData(response.data.orderItemId) // } if(that.orderExceptionData.orderExceptionType == 'order_pay_exception'){ that.getOrderFeeByIdData() that.getPreExceptionData() } if(that.orderExceptionData.orderExceptionStatus==2){ that.getOrderExcptionResult() } }); }, changeExceptionStatus(){ this.$set(this.handlerParams,'orderExceptionHandlerResult','') }, getOrderData(){ getOrder(this.orderId).then(response => { this.orderData = response.data if(response.data.customerId){ this.getCustomerData(response.data.customerId) } }); }, getCustomerData(id){ getCustomer(id).then(res=>{ this.customerData = res.data }) }, //获取异常结果 getOrderExcptionResult(){ getOrderExcptionResult({orderExceptionId:this.orderExceptionId}).then(res=>{ this.handlerParams = Object.assign(this.handlerParams,res.data.list[0]) if(!this.orderExceptionData.handlerTime){ this.orderExceptionData.handlerTime = this.handlerParams.handlerTime } if(this.handlerParams.handlerRemark){ this.$set(this.handlerParams,'orderExceptionHandlerRemark', this.handlerParams.handlerRemark) } if(this.handlerParams.handlerResult){ this.$set(this.handlerParams,'orderExceptionHandlerResult', this.handlerParams.handlerResult) } if(this.handlerParams.productId){ this.productId2 = this.productId1 = this.handlerParams.productId } }) }, getOrderFeeByIdData(){ getOrderFeeById({id:this.orderId}).then(response => { this.orderFee = response.data this.handlerParams.orderExceptionHandlerResult = this.orderFee.result[0] if(this.orderExceptionData.orderExceptionStatus==2){ this.getOrderExcptionResult() } }) }, getPreExceptionData(){ getFirstReceivableListByOrderId({id:this.orderId}).then(response => { this.preException = response.data // this.preException.forEach(item=>{ // var curr = getDictData('shipping_price_unit', item.currencyId) // if(curr.label == this.$t('美元')){ // item.doller = item.totalAmount // } // }) }); }, /* getShopData(id){ getOrderItemById(id).then(res=>{ this.shopData = res.data }) }, */ handleSelectionChange(val) { this.multipleSelection = val; }, // 根据线路id显示线路名称 getRouterNameById(){ if(this.orderData.logisticsInfoDto) { return this.$t('从')+this.$t('【')+this.orderData.logisticsInfoDto.startTitleZh + this.$t('】')+this.$t('发往')+this.$t('【') + this.orderData.logisticsInfoDto.destTitleZh+this.$t('】') } return this.$t('无') }, //新增异常处理结果切换 handlerResultChange(){ // if(this.orderExceptionData.orderExceptionType=='goods_add_exception'){ // this.productId1 = this.handlerParams.productId // this.productId2 = this.handlerParams.productId // } }, submitForm(){ if(!this.handlerParams.orderExceptionHandlerResult){ this.$modal.msgError(this.$t('请选择处理结果')); return } if(this.orderExceptionData.orderExceptionType=='order_doc_exception'&&this.handlerParams.fileList&&this.handlerParams.fileList.length>0){ // if(!this.handlerParams.fileList||this.handlerParams.fileList.length==0){ // this.$modal.msgError(this.$t('请上传报关资料')); // return // } this.handlerParams.files = Array.isArray(this.handlerParams.fileList) ? this.handlerParams.fileList.join(',') : this.handlerParams.fileList } if(this.orderExceptionData.orderExceptionType=='goods_add_exception'&&this.handlerParams.orderExceptionHandlerResult=='goods_absent'){ this.$redirect('/product/product-list?prodId=' + this.handlerParams.productId) return } if(this.orderExceptionData.orderExceptionType=='goods_add_exception'&&this.handlerParams.orderExceptionHandlerResult=='goods_exists'){ if(this.productId1){ this.handlerParams.productId = this.productId1 }else{ this.$modal.msgError(this.$t('请选择产品')); return } } handlerExceptionByExceptionId(this.handlerParams).then(res=>{ this.$modal.msgSuccess(this.$t('提交成功')); this.$redirect('/order/pending?id=' + this.orderData.orderId) }) }, /** 跟进按钮操作 */ handleAdd() { this.$router.push({ path: "/financial/creatCollection?receiptId=0", query:{ orderId:this.orderId, } }); }, // 取消审核 cancelAudit(){ this.$prompt("请输入取消原因", { inputPattern: /[\S]+/, inputErrorMessage: this.$t('不能为空') }).then(({value}) => { return cancelProcessInstance(this.orderExceptionData.bpmId, value) }) .then(res => { this.getList() }) }, 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:"", // 下载地址 } // 目标对象 var fileArr = this.handlerParams.fileList fileArr.forEach(item =>{ // 需要预览的文件数组(可以传空数组就是单张预览) let obj = { FileName: this.getFileName(item), name: this.getFileName(item), format:this.getFileFormat(item), url: item, downUrl:"", } this.FilePreAll.push(obj) }) console.log(this.FilePreAll) this.IsPreview = true // 打开预览弹窗 this.timers = new Date().getTime() // 刷新预览地址 }, // 关闭预览 onClickClosePreview(val){ this.IsPreview = val // 由组件内部传入的关闭数据赋值关闭 }, onProductChange(product){ if(!product){ this.productId1 = null this.productId2 = null return false } this.productId1 = product.id this.productId2 = product.id }, } }; </script> <style scoped> .link-text{ margin-top:20px; } .link-text span{ font-size:16px; font-weight:600; margin-right:20px; } .card-title{ font-size: 18px; font-weight: bold; margin-top: 10px; } .header{ width: 100%; display: flex; align-items: center; justify-content: space-between; } .card{ margin-top: 20px; } .dialog-footer{ padding: 40px; width: 60%; align-items: center; display: flex; /* justify-content: space-between; */ } .filelist{ display: flex; flex-wrap: wrap; align-items: center; flex-direction: column } .filelist span{ color: #1E98D7; } .red{ color: red; } .el-select{ width:300px !important; } </style>