prepayDeal.vue 36.8 KB
Newer Older
1 2 3 4
<template>
  <div class="app-container">
    <el-card>
     <div slot="header" class="header">
我在何方's avatar
我在何方 committed
5
       <div class="card-title">{{$t('查看')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
6
       <el-button type="primary" icon="el-icon-arrow-left" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
7
     </div>
dragondean@qq.com's avatar
dragondean@qq.com committed
8
     <el-form v-if="orderData" :model="orderData" ref="queryForm" size="small" :inline="true"  label-width="120px" class="card">
9
       <el-row>
我在何方's avatar
我在何方 committed
10
          <el-form-item :label="$t('订单号')+':'">
dragondean@qq.com's avatar
dragondean@qq.com committed
11
            {{orderData.orderNo || ''}}
12 13
          </el-form-item>
       </el-row>
我在何方's avatar
我在何方 committed
14
       <div v-if="shopData&&orderExceptionData.orderExceptionType!='goods_add_exception'">
我在何方's avatar
我在何方 committed
15
         <el-row>
我在何方's avatar
我在何方 committed
16
            <el-form-item :label="$t('产品名称')+':'" >
dragondean@qq.com's avatar
dragondean@qq.com committed
17
              {{shopData.prodTitleZh || ''}}
我在何方's avatar
我在何方 committed
18 19 20
            </el-form-item>
         </el-row>
         <el-row>
我在何方's avatar
我在何方 committed
21
            <el-form-item :label="$t('产品英文名称')+':'">
dragondean@qq.com's avatar
dragondean@qq.com committed
22
              {{shopData.prodTitleEn || ''}}
我在何方's avatar
我在何方 committed
23 24 25
            </el-form-item>
         </el-row>
       </div>
26
       <el-row>
我在何方's avatar
我在何方 committed
27
           <el-form-item :label="$t('运输路线')+':'" >
Marcus's avatar
Marcus committed
28
               <span v-if="orderData">{{ $t('') }}<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />{{ $t('') }}</span>
我在何方's avatar
我在何方 committed
29
                {{orderData?getRouterNameById():''}}
30 31
           </el-form-item>
       </el-row>
chenjiuping's avatar
chenjiuping committed
32

dragondean@qq.com's avatar
dragondean@qq.com committed
33
       <!-- 单证异常,发货人异常,其他异常 不显示这部分内容 -->
34
       <div v-if="['order_doc_exception','order_consignor_exception', 'order_other_exception'].indexOf(orderExceptionData.orderExceptionType) == -1">
dragondean@qq.com's avatar
dragondean@qq.com committed
35
        <!-- 预付异常,提货异常,代收货款是针对整个订单的 -->
36
        <template v-if="['order_pay_exception','order_pick_up_exception', 'order_cod_exception','not_customer_service_exception'].indexOf(orderExceptionData.orderExceptionType) > -1">
dragondean@qq.com's avatar
dragondean@qq.com committed
37 38 39 40 41 42
          <el-row>
              <el-form-item :label="$t('填单参数')+':'">
                <template v-if="orderData && orderData.costVO">
                {{(orderData.costVO.totalNum||0)+$t('')+(orderData.costVO.totalVolume||0)+''+(orderData.costVO.totalWeight||0)+'kg '+(orderData.costVO.totalQuantity||0)+$t('')}}
                </template>
              </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
43
              <el-form-item :label="$t('代收金额')+':'" v-if="orderExceptionData.orderExceptionType == 'order_cod_exception'">
dragondean@qq.com's avatar
dragondean@qq.com committed
44
                <template v-if="orderData && orderData.costVO">
45
                  {{orderExceptionData.orderExceptionAmount}} {{currencyMap[orderExceptionData.orderExceptionAmountCurrencyId]}}
dragondean@qq.com's avatar
dragondean@qq.com committed
46 47
                </template>
              </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
48 49 50 51 52 53 54 55 56 57 58
          </el-row>
          <el-row>
              <el-form-item :label="$t('入仓参数')+':'">
                <template v-if="orderData && orderData.costVO">
                  <span>{{(orderData.sumNum||0)+$t('')+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg '+(orderData.sumQuantity||0) +$t('')}}</span>
                </template>
              </el-form-item>
          </el-row>
        </template>

        <template v-else>
59
          <el-row v-if="shopData">
我在何方's avatar
我在何方 committed
60
            <el-form-item :label="$t('填单参数')+':'">
61
              <template >
62 63 64 65 66 67
                {{$t('{num}箱 {volume}m³ {weight}kg {quantity}', {
                  num: shopData.num || 0,
                  volume: shopData.volume || 0,
                  weight: shopData.weight || 0,
                  quantity: shopData.quantity || 0
                })}}
dragondean@qq.com's avatar
dragondean@qq.com committed
68
              </template>
我在何方's avatar
我在何方 committed
69
            </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
70 71
          </el-row>
          <el-row v-if="shopData">
72
              <el-form-item :label="$t('入仓参数')+':'" ><template v-if="shopData.warehouseInInfoVO">
dragondean@qq.com's avatar
dragondean@qq.com committed
73 74 75 76 77
                {{$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
78
                  })}}</template>
dragondean@qq.com's avatar
dragondean@qq.com committed
79
                <!-- <span>{{(orderData.sumNum||0)+$t('')+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg '+(orderData.sumQuantity||0) +$t('')}}</span> -->
80

dragondean@qq.com's avatar
dragondean@qq.com committed
81
              <template v-else>{{$t('无入仓数据')}}</template>
82
              </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
83 84
          </el-row>
        </template>
chenjiuping's avatar
chenjiuping committed
85

dragondean@qq.com's avatar
dragondean@qq.com committed
86 87
        <el-row :span="12">
          <el-form-item :label="$t('异常描述')+':'">
88
            <!-- <dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="orderExceptionData.orderExceptionType" /> -->
dragondean@qq.com's avatar
dragondean@qq.com committed
89
            <!-- {{orderExceptionData.orderExceptionDescVO?orderExceptionData.orderExceptionDescVO.descZh:''}} -->
90
            {{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
dragondean@qq.com's avatar
dragondean@qq.com committed
91
          </el-form-item>
Marcus's avatar
Marcus committed
92
          <el-button v-if="orderExceptionData.orderExceptionType=='order_pay_exception'" type="primary" plain icon="el-icon-plus" style="margin-left: 200px;"  @click="handleAdd">{{ $t('新增收款单') }}</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
93 94 95 96 97 98
        </el-row>
        <el-row v-if="orderExceptionData.orderExceptionDetails">
          <el-form-item :label="$t('详细内容')+':'">
            <span>{{orderExceptionData.orderExceptionDetails}}</span>
          </el-form-item>
        </el-row>
我在何方's avatar
我在何方 committed
99
        <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType=='goods_add_exception'">
dragondean@qq.com's avatar
dragondean@qq.com committed
100 101 102 103
          <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>
104 105 106 107 108 109 110 111 112 113
        <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>
我在何方's avatar
我在何方 committed
114
       </div>
我在何方's avatar
我在何方 committed
115
     </el-form>
116

dragondean@qq.com's avatar
dragondean@qq.com committed
117
      <!-- 预付异常的表格 -->
118
      <el-table v-if="orderExceptionData.orderExceptionType=='order_pay_exception'" v-loading="loading" border :data="preException">
dragondean@qq.com's avatar
dragondean@qq.com committed
119 120 121 122 123 124 125 126 127 128 129 130 131 132
        <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('预付')}}
133
              </template>
dragondean@qq.com's avatar
dragondean@qq.com committed
134 135 136 137 138 139 140 141 142 143 144 145
          </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>
chenjiuping's avatar
chenjiuping committed
146

dragondean@qq.com's avatar
dragondean@qq.com committed
147
        <el-table-column :label="$t('付款人')">
148
          <template slot-scope="{row}">
dragondean@qq.com's avatar
dragondean@qq.com committed
149
            <span>
150
              <dict-tag :type="DICT_TYPE.DRAWEE" :value="row.paymentUser"></dict-tag>
dragondean@qq.com's avatar
dragondean@qq.com committed
151
            </span>
dragondean@qq.com's avatar
dragondean@qq.com committed
152 153 154 155
          </template>
        </el-table-column>
        <el-table-column :label="$t('付款状态')" prop="worth">
          <template slot-scope="scope">
156
              <dict-tag :type="DICT_TYPE.ECW_RECEIVABLE_STATE" :value="scope.row.state"></dict-tag>
dragondean@qq.com's avatar
dragondean@qq.com committed
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
            </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}}
我在何方's avatar
我在何方 committed
184 185
              </template>
            </el-table-column>
dragondean@qq.com's avatar
dragondean@qq.com committed
186 187 188
        <el-table-column :label="$t('重量')" prop="weight">
          <template slot-scope="scope">
              {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.weight:0}}
189
            </template>
dragondean@qq.com's avatar
dragondean@qq.com committed
190 191 192 193
          </el-table-column>
        <el-table-column :label="$t('数量')" prop="quantity">
          <template slot-scope="scope">
              {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.quantityAll:0}}
dragondean@qq.com's avatar
dragondean@qq.com committed
194
            </template>
dragondean@qq.com's avatar
dragondean@qq.com committed
195 196 197
          </el-table-column>
        <el-table-column :label="$t('货值')" prop="worth" />
      </el-table>
我在何方's avatar
我在何方 committed
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
<!-- 未分配客户经理 -->
	 <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>
dragondean@qq.com's avatar
dragondean@qq.com committed
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
      <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('已核销预付金额')+':'">
我在何方's avatar
我在何方 committed
258 259
            <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>
dragondean@qq.com's avatar
dragondean@qq.com committed
260 261
          </el-form-item>
          </el-col>
我在何方's avatar
我在何方 committed
262
          <el-col :span="12">
263
          <el-form-item :label="$t('已核销预付金额占总金额比例')+':'" label-width="320px">
dragondean@qq.com's avatar
dragondean@qq.com committed
264 265 266 267 268 269 270 271 272 273
              {{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>
我在何方's avatar
我在何方 committed
274
          <el-col :span="12">
275
          <el-form-item :label="$t('预付商品货值占总货值比例')+':'" label-width="320px">
dragondean@qq.com's avatar
dragondean@qq.com committed
276 277 278 279 280
              {{orderFee.paymentGoodsWorthScale}}%
          </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'">
281 282 283 284 285 286

          <el-col :span="6">
             <el-form-item :label="$t('预付商品方数')+':'">
                 {{orderFee.paymentGoodsVolume}} {{$t('立方米')}}
             </el-form-item>
          </el-col>
我在何方's avatar
我在何方 committed
287
          <el-col :span="12">
288 289
          <el-form-item :label="$t('预付商品货值占订单总运费+清关费比例')+':'" label-width="320px">
              {{orderFee.needWorthScale}}%
dragondean@qq.com's avatar
dragondean@qq.com committed
290
          </el-form-item>
291
          </el-col>
dragondean@qq.com's avatar
dragondean@qq.com committed
292 293 294 295 296 297 298
        </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>
我在何方's avatar
我在何方 committed
299
          <el-col :span="12">
300
            <el-form-item :label="$t('预付商品方数占总方数比例')+':'" label-width="320px">
dragondean@qq.com's avatar
dragondean@qq.com committed
301 302 303 304
                {{orderFee.paymentGoodsVolumeScale}}%
            </el-form-item>
            </el-col>
        </el-row>
我在何方's avatar
我在何方 committed
305
        <el-row :span="12" v-if="orderExceptionData.orderExceptionType=='order_doc_exception'">
我在何方's avatar
我在何方 committed
306
          <el-form-item :label="$t('报关资料')+':'" size="medium" :require="true">
我在何方's avatar
我在何方 committed
307
            <file-upload v-model="handlerParams.fileList" :value="orderExceptionData.orderExceptionAttr" ></file-upload>
dragondean@qq.com's avatar
dragondean@qq.com committed
308 309
          </el-form-item>
        </el-row>
310 311 312 313 314 315 316
        <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>
dragondean@qq.com's avatar
dragondean@qq.com committed
317
        <!--预付异常的备选需要根据接口数据过滤-->
318
        <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType=='not_customer_service_exception'">
dragondean@qq.com's avatar
dragondean@qq.com committed
319
            <el-form-item :label="$t('处理结果')+':'" required>
Marcus's avatar
Marcus committed
320
              <el-select v-model="handlerParams.orderExceptionHandlerResult" :placeholder="$t('请选择')" clearable>
dragondean@qq.com's avatar
dragondean@qq.com committed
321
                <template v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')">
322
                  <el-option :disabled="orderFee && orderFee.result && orderFee.result.indexOf(dict.value) ==-1" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
dragondean@qq.com's avatar
dragondean@qq.com committed
323 324 325 326
                </template>
              </el-select>
            </el-form-item>
        </el-row>
327
        <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'">
dragondean@qq.com's avatar
dragondean@qq.com committed
328
            <el-form-item :label="$t('处理结果')+':'" required>
329
              <el-select v-model="handlerParams.orderExceptionHandlerResult" :placeholder="$t('请选择')" clearable @change="handlerResultChange">
dragondean@qq.com's avatar
dragondean@qq.com committed
330
                <template v-for="dict in getDictDatas(orderExceptionData.orderExceptionType+'_result')">
331
                  <el-option :disabled="dict.value=='pending'"  :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
dragondean@qq.com's avatar
dragondean@qq.com committed
332 333 334 335
                </template>
              </el-select>
            </el-form-item>
        </el-row>
我在何方's avatar
我在何方 committed
336
        <!-- v1.7新增商品异常 -->
我在何方's avatar
我在何方 committed
337
        <div v-if="shopData&&orderExceptionData.orderExceptionType=='goods_add_exception'&&handlerParams.orderExceptionHandlerResult=='goods_exists'">
我在何方's avatar
我在何方 committed
338 339 340 341 342 343 344 345 346 347 348 349 350
          <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
351
                  :status="0"
我在何方's avatar
我在何方 committed
352
                   @hook:mounted="onTableMounted"
353 354
                   v-model="productId2"
                   @change = "onProductChange($event)"
我在何方's avatar
我在何方 committed
355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371
                   />
               </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"
372
                :status="0"
373 374
                 v-model="productId1"
                 @change = "onProductChange($event)"
我在何方's avatar
我在何方 committed
375 376 377 378
                 />
             </el-form-item>
          </el-row>
        </div>
379
      <el-row v-if="orderExceptionData.orderExceptionType=='not_customer_service_exception'&&handlerParams.orderExceptionHandlerResult=='allocate'">
我在何方's avatar
我在何方 committed
380
        <el-form-item  :label="$t('移交客户经理')+':'" required>
381 382 383
          <el-select v-model="handlerParams.customerService" :placeholder="$t('请选择客户经理')" clearable>
              <el-option v-for="dict in customerServiceList"
                         :key="dict.id" :label="dict.nickname" :value="dict.id"/>
我在何方's avatar
我在何方 committed
384 385 386
          </el-select>
        </el-form-item>
      </el-row>
387 388 389 390 391 392 393
        <!-- 代收货款 时需要填写代收金额 -->
        <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"  />
            <!-- <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"/>
394 395
            </el-select> -->{{getCurrencyLabel(handlerParams.currency)}}
            <!-- <dict-tag type="shipping_price_unit" v-model="handlerParams.currency" class="w-100 ml-10"  /> -->
396 397 398
          </el-form-item>
        </el-row>

dragondean@qq.com's avatar
dragondean@qq.com committed
399 400 401 402
        <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"  />
            <el-select v-model="handlerParams.currency" style="width: 100px;margin-left: 10px;" clearable>
403 404 405
              <el-option  v-for="dict in currencyList "
                        :key="dict.id" :label="dict.titleZh" :value="dict.id"/>
              </el-select>
dragondean@qq.com's avatar
dragondean@qq.com committed
406 407
          </el-form-item>
        </el-row>
我在何方's avatar
我在何方 committed
408
        <el-row :span="8" v-if="orderExceptionData.orderExceptionType!='not_customer_service_exception'&&orderExceptionData.orderExceptionType!='goods_add_exception'">
dragondean@qq.com's avatar
dragondean@qq.com committed
409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
          <el-form-item :label="$t('备注')+':'" size="medium">
            <el-input style="width: 500px;"  type="textarea" v-model="handlerParams.orderExceptionHandlerRemark"  />
          </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">
                  <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">
Marcus's avatar
Marcus committed
425
              <el-select v-model="handlerParams.orderExceptionHandlerResult" :placeholder="$t('请选择')" clearable>
dragondean@qq.com's avatar
dragondean@qq.com committed
426 427 428 429 430 431 432 433 434
              <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"  />
              <el-select v-model="handlerParams.currency" style="width: 100px;margin-left: 10px;" clearable>
我在何方's avatar
我在何方 committed
435 436
              <el-option  v-for="dict in currencyList "
                        :key="dict.id" :label="dict.titleZh" :value="dict.id"/>
dragondean@qq.com's avatar
dragondean@qq.com committed
437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
              </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>
                <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">
      <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>
        <el-button  type="primary" @click="submitForm">{{$t('提交')}}</el-button>
        <el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('取消')}}</el-button>
      </template>
    </div>
471 472 473
    <div class="preview" v-if="IsPreview">
      <file-preview :key="timers" :TragetPic="TragetPic" :FilePreAll="FilePreAll" @Close="onClickClosePreview"></file-preview>
    </div>
474 475 476 477
  </div>
</template>

<script>
我在何方's avatar
我在何方 committed
478 479
  import FileUpload from '@/components/FileUpload'
  import {getDictData, getDictDatas} from  '@/utils/dict'
我在何方's avatar
我在何方 committed
480
  import {getOrder} from '@/api/ecw/order'
481
  import FilePreview from '@/components/FilePreview'
我在何方's avatar
我在何方 committed
482
  import { getCurrencyList } from '@/api/ecw/currency'
我在何方's avatar
我在何方 committed
483
  import {getExceptionById,handlerExceptionByExceptionId,getOrderItemById,getOrderFeeById} from "@/api/ecw/orderException"
484
  import {getFirstReceivableListByOrderId} from '@/api/ecw/financial'
485
  import WorkFlow from '@/components/WorkFlow'
486
  import {listByIds} from '@/api/ecw/region'
487
  import {listServiceUser} from "@/api/system/user";
488
  import {cancelProcessInstance} from '@/api/bpm/processInstance'
我在何方's avatar
我在何方 committed
489
  import {getCustomer} from '@/api/ecw/customer'
我在何方's avatar
我在何方 committed
490
  import ProductSelector from '@/components/ProductSelector'
491 492 493
  export default {
    name: "PrepayDeal",
    components: {
我在何方's avatar
我在何方 committed
494
      FileUpload, WorkFlow,FilePreview,ProductSelector
495 496 497 498 499
    },
    data() {
      return {
        // 遮罩层
        loading: false,
我在何方's avatar
我在何方 committed
500
        orderExceptionData: {},
501 502
        types:'package,bag',
        importance:1,
我在何方's avatar
我在何方 committed
503 504
        orderData:{
        },
505
        orderId:0,
我在何方's avatar
我在何方 committed
506 507
        orderExceptionId:0,
        handlerParams:{
508
          orderExceptionId:0,
我在何方's avatar
我在何方 committed
509 510
          orderExceptionStatus:"1",
          orderExceptionHandlerResult:''
我在何方's avatar
我在何方 committed
511
        },
chenjiuping's avatar
chenjiuping committed
512

513 514 515
        //发货/收货人信息
        consigneeData:[],
        routerList:[],
我在何方's avatar
我在何方 committed
516
        multipleSelection:[],
我在何方's avatar
我在何方 committed
517
        preException:[],
我在何方's avatar
我在何方 committed
518 519
        orderFee:[],
        currencyList:[],
520
        showWorkFlow: false, // 是否显示工作流
521 522 523 524
        IsPreview:false, // 控制预览弹窗字段
        timers:"", //时间戳
        FilePreAll:[], // 预览数组
        TragetPic:{},
我在何方's avatar
我在何方 committed
525
        region:'',
526 527
        customerData:{},//归属客户
        customerServiceList:[],//客户经理
528 529
        productId1:null,
        productId2:null
530 531 532
      };
    },
    created() {
我在何方's avatar
我在何方 committed
533 534 535 536
      if(this.$route.query.id){
        this.orderExceptionId = this.$route.query.id
        this.handlerParams.orderExceptionId = this.$route.query.id
        this.getList()
我在何方's avatar
我在何方 committed
537

538
      }
539 540 541
      listServiceUser().then(r=>{
        this.customerServiceList = r.data;
      })
dragondean@qq.com's avatar
dragondean@qq.com committed
542
      getCurrencyList().then(res => this.currencyList = res.data)
我在何方's avatar
我在何方 committed
543
    },
544 545 546 547
    watch:{
      'handlerParams.orderExceptionHandlerResult'(val){
        if(val == 'no_pay'){
          this.showWorkFlow = true
548
        }else this.showWorkFlow = false
549 550 551 552 553

        // 如果是代收货款,则给默认单位
        if(val == 'cod' && this.orderExceptionData.orderExceptionAmountCurrencyId){
          this.$set(this.handlerParams, 'currency', this.orderExceptionData.orderExceptionAmountCurrencyId)
        }
554 555 556 557 558 559 560 561 562 563 564
      },
      '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
        })
565 566
      }
    },
我在何方's avatar
我在何方 committed
567
    computed: {
568
      currencyMap(){
我在何方's avatar
我在何方 committed
569 570 571 572 573 574
        let map = {}
        this.currencyList.forEach(item => {
          map[item.id] = this.$l(item, 'title')
        })
        return map
      },
dragondean@qq.com's avatar
dragondean@qq.com committed
575 576
      shopData(){
        if(this.orderExceptionData.orderItemId && this.orderData && this.orderData.orderItemVOList){
我在何方's avatar
我在何方 committed
577 578
          if(this.orderExceptionData.orderExceptionType=='goods_add_exception'&&!this.handlerParams.productId){
            this.handlerParams.productId = this.orderData.orderItemVOList.find(item => item.orderItemId == this.orderExceptionData.orderItemId).prodId
579 580
            this.productId1 = this.handlerParams.productId
            this.productId2 = this.handlerParams.productId
我在何方's avatar
我在何方 committed
581
          }
我在何方's avatar
我在何方 committed
582
          console.log(this.orderData.orderItemVOList.find(item => item.orderItemId == this.orderExceptionData.orderItemId))
dragondean@qq.com's avatar
dragondean@qq.com committed
583 584 585
          return this.orderData.orderItemVOList.find(item => item.orderItemId == this.orderExceptionData.orderItemId)
        }
      }
586 587
    },
    methods: {
我在何方's avatar
我在何方 committed
588 589 590
      onTableMounted(e){
          // console.warn('onTableMounted', e)
      },
591
      /** 查询列表 */
592 593 594 595 596
	  getCurrencyLabel(id){
	    var label = this.currencyList.filter(item=>item.id == id)
	    if(label.length>0) return label[0].titleZh
	    return ''
	  },
597 598
      getList() {
        let that = this
我在何方's avatar
我在何方 committed
599 600 601
        that.loading = true;
        getExceptionById(that.orderExceptionId).then(response => {
          that.orderExceptionData = response.data;
602
          // that.orderExceptionData.orderExceptionType = 'order_other_exception'
603
          // that.orderExceptionData.orderExceptionType = 'order_miss_exception'
我在何方's avatar
我在何方 committed
604
           // that.orderExceptionData.orderExceptionType = 'not_customer_service_exception'
我在何方's avatar
我在何方 committed
605
           // that.orderExceptionData.orderExceptionType = 'goods_add_exception'
我在何方's avatar
我在何方 committed
606 607 608
          that.loading = false;
          that.orderId = response.data.orderId
          that.getOrderData()
我在何方's avatar
我在何方 committed
609 610 611
          if(that.orderExceptionData.orderExceptionAttr){
            that.handlerParams.fileList = that.orderExceptionData.orderExceptionAttr.split(',')
          }
我在何方's avatar
我在何方 committed
612 613 614
          // if(response.data.hasOwnProperty('orderItemId')){
          //   that.getShopData(response.data.orderItemId)
          // }
我在何方's avatar
我在何方 committed
615

我在何方's avatar
我在何方 committed
616 617 618 619
          if(that.orderExceptionData.orderExceptionType == 'order_pay_exception'){
            that.getOrderFeeByIdData()
            that.getPreExceptionData()
          }
我在何方's avatar
我在何方 committed
620

我在何方's avatar
我在何方 committed
621 622
        });
      },
我在何方's avatar
我在何方 committed
623 624 625
      changeExceptionStatus(){
        this.$set(this.handlerParams,'orderExceptionHandlerResult','')
      },
我在何方's avatar
我在何方 committed
626 627 628
      getOrderData(){
        getOrder(this.orderId).then(response => {
          this.orderData = response.data
我在何方's avatar
我在何方 committed
629 630 631
          if(response.data.customerId){
            this.getCustomerData(response.data.customerId)
          }
我在何方's avatar
我在何方 committed
632
        });
633
      },
我在何方's avatar
我在何方 committed
634 635 636 637 638
      getCustomerData(id){
        getCustomer(id).then(res=>{
          this.customerData = res.data
        })
      },
我在何方's avatar
我在何方 committed
639 640 641
      getOrderFeeByIdData(){
        getOrderFeeById({id:this.orderId}).then(response => {
          this.orderFee = response.data
642
          this.handlerParams.orderExceptionHandlerResult = this.orderFee.result[0]
我在何方's avatar
我在何方 committed
643 644
        })
      },
645 646 647
      getPreExceptionData(){
        getFirstReceivableListByOrderId({id:this.orderId}).then(response => {
          this.preException = response.data
我在何方's avatar
我在何方 committed
648 649 650 651 652 653
          // this.preException.forEach(item=>{
          //   var curr = getDictData('shipping_price_unit', item.currencyId)
          //   if(curr.label == this.$t('美元')){
          //     item.doller = item.totalAmount
          //   }
          // })
654 655
        });
      },
656
      /* getShopData(id){
我在何方's avatar
我在何方 committed
657 658 659
        getOrderItemById(id).then(res=>{
          this.shopData = res.data
        })
660
      }, */
661 662 663 664
      handleSelectionChange(val) {
         this.multipleSelection = val;
       },
      // 根据线路id显示线路名称
我在何方's avatar
我在何方 committed
665 666
      getRouterNameById(){
              if(this.orderData.logisticsInfoDto) {
Marcus's avatar
Marcus committed
667
                  return this.$t('')+this.$t('')+this.orderData.logisticsInfoDto.startTitleZh + this.$t('')+this.$t('发往')+this.$t('') + this.orderData.logisticsInfoDto.destTitleZh+this.$t('')
668
              }
我在何方's avatar
我在何方 committed
669
              return this.$t('')
670
      },
671 672 673 674 675 676 677
      //新增异常处理结果切换
      handlerResultChange(){
        if(this.orderExceptionData.orderExceptionType=='goods_add_exception'){
          this.productId1 = this.handlerParams.productId
          this.productId2 = this.handlerParams.productId
        }
      },
678
      submitForm(){
679
          if(!this.handlerParams.orderExceptionHandlerResult){
我在何方's avatar
我在何方 committed
680
            this.$modal.msgError(this.$t('请选择处理结果'));
我在何方's avatar
我在何方 committed
681
            return
682
          }
我在何方's avatar
我在何方 committed
683 684 685 686 687
          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
            // }
我在何方's avatar
我在何方 committed
688
            this.handlerParams.files = Array.isArray(this.handlerParams.fileList) ? this.handlerParams.fileList.join(',') : this.handlerParams.fileList
我在何方's avatar
我在何方 committed
689
          }
690 691 692 693 694 695 696
          if(this.orderExceptionData.orderExceptionType=='goods_add_exception'&&this.handlerParams.orderExceptionHandlerResult=='goods_absent'){
            this.$redirect('/product/product-list?prodId=' + this.handlerParams.productId)
            return
          }
          if(this.productId1){
            this.handlerParams.productId = this.productId1
          }
我在何方's avatar
我在何方 committed
697
          handlerExceptionByExceptionId(this.handlerParams).then(res=>{
我在何方's avatar
我在何方 committed
698
              this.$modal.msgSuccess(this.$t('提交成功'));
699
              this.$redirect('/order/pending?id=' + this.orderData.orderId)
我在何方's avatar
我在何方 committed
700
          })
701 702 703
      },
      /** 跟进按钮操作 */
      handleAdd() {
我在何方's avatar
我在何方 committed
704
        this.$router.push({
705
          path: "/financial/creatCollection?receiptId=0",
我在何方's avatar
我在何方 committed
706 707 708 709
          query:{
            orderId:this.orderId,
          }
        });
710
      },
711 712 713 714
      // 取消审核
      cancelAudit(){
        this.$prompt("请输入取消原因", {
          inputPattern: /[\S]+/,
Marcus's avatar
Marcus committed
715
          inputErrorMessage: this.$t('不能为空')
716 717 718 719 720 721
        }).then(({value}) => {
          return cancelProcessInstance(this.orderExceptionData.bpmId, value)
        })
        .then(res => {
          this.getList()
        })
722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759
      },
      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  // 由组件内部传入的关闭数据赋值关闭
        },
760 761 762 763 764 765 766 767 768
        onProductChange(product){
            if(!product){
              this.productId1 = null
              this.productId2 = null
             return false
            }
              this.productId1 = product.id
              this.productId2 = product.id
        },
769 770 771 772
    }
  };
</script>

我在何方's avatar
我在何方 committed
773
<style scoped>
774 775 776 777 778 779
  .link-text{
    margin-top:20px;
  }
  .link-text span{
    font-size:16px;
    font-weight:600;
我在何方's avatar
我在何方 committed
780
    margin-right:20px;
781
  }
782 783 784 785 786 787
  .card-title{
      font-size: 18px;
      font-weight: bold;
       margin-top: 10px;
  }
  .header{
我在何方's avatar
我在何方 committed
788
    width: 100%;
789 790 791 792 793 794 795 796 797 798 799 800
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .card{
    margin-top: 20px;
  }
  .dialog-footer{
    padding: 40px;
    width: 60%;
    align-items: center;
    display: flex;
801
    /* justify-content: space-between; */
802
  }
803 804 805 806 807 808 809 810 811
  .filelist{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    flex-direction: column
  }
  .filelist span{
    color: #1E98D7;
  }
我在何方's avatar
我在何方 committed
812 813 814
  .red{
      color: red;
  }
chenjiuping's avatar
chenjiuping committed
815
</style>