index.vue 19.1 KB
Newer Older
Marcus's avatar
Marcus committed
1 2
<template>
  <div class="app-container">
黄卓's avatar
黄卓 committed
3
    <h2>{{ title }}-{{ order.orderNo }}</h2>
Marcus's avatar
Marcus committed
4 5 6

    <order-base-info :order="order"></order-base-info>

7
    <div style="margin-top: 20px;display: none">
dcy's avatar
dcy committed
8 9
      <span>{{$t('储位')}}{{ ($refs.area ? $refs.area.selected : []).join(',') }}</span>
      <el-button type="primary" size="mini" @click="areaVisible = true" style="margin-left: 15px">{{$t('选择')}}</el-button>
Marcus's avatar
Marcus committed
10
    </div>
Marcus's avatar
Marcus committed
11

dcy's avatar
dcy committed
12
    <h2>{{$t('货物信息')}}</h2>
Marcus's avatar
Marcus committed
13
    <el-table
14
      v-if="order.orderItemVOList && order.orderItemVOList.length > 0 && orderItemList && orderItemList.length > 0"
Marcus's avatar
Marcus committed
15
      :data="order.orderItemVOList || []"
Marcus's avatar
Marcus committed
16 17
      style="width: 100%">
      <el-table-column
Marcus's avatar
Marcus committed
18 19
        type="index"
        width="50"
dcy's avatar
dcy committed
20
        :label="$t('序号')">
Marcus's avatar
Marcus committed
21 22
      </el-table-column>
      <el-table-column
Marcus's avatar
Marcus committed
23
        prop="prodTitleZh"
dcy's avatar
dcy committed
24
        :label="$t('品名')">
25 26 27 28
        <template v-slot="{row}">
          {{ row.prodTitleZh }}<br>
          {{ row.prodTitleEn }}
        </template>
Marcus's avatar
Marcus committed
29 30
      </el-table-column>
      <el-table-column
dcy's avatar
dcy committed
31
        :label="$t('填单货物属性')">
Marcus's avatar
Marcus committed
32
        <template v-slot="{row}">
dcy's avatar
dcy committed
33
          <span v-if="row.isWarehouseInAdd">{{$t('非填单货物信息')}}</span>
Marcus's avatar
Marcus committed
34
          <template v-else>
dcy's avatar
dcy committed
35 36 37 38
            {{$t('品牌')}}{{ [$t('无牌'), $t('有牌'), $t('中性')][row.brandType] }}<br>
            {{$t('箱数')}}{{ row.num }}<br>
            {{$t('体积')}}{{ row.volume }}<br>
            {{$t('重量')}}{{ row.weight }}Kg
39
          </template>
Marcus's avatar
Marcus committed
40
        </template>
Marcus's avatar
Marcus committed
41 42
      </el-table-column>
      <el-table-column
dcy's avatar
dcy committed
43
        :label="$t('入库货物属性')">
Marcus's avatar
Marcus committed
44
        <template v-slot="{row}">
Marcus's avatar
Marcus committed
45
          <template v-if="row.warehouseInInfoVO">
46
            {{$t('品牌')}}{{ row.brandName }}<br>
dcy's avatar
dcy committed
47 48 49
            {{$t('箱数')}}{{ row.warehouseInInfoVO.cartonsNum }}<br>
            {{$t('体积')}}{{ row.warehouseInInfoVO.volume }}<br>
            {{$t('重量')}}{{ row.warehouseInInfoVO.weight }}Kg
Marcus's avatar
Marcus committed
50
          </template>
dcy's avatar
dcy committed
51
          <span v-else>{{$t('暂无入仓信息')}}</span>
Marcus's avatar
Marcus committed
52
        </template>
Marcus's avatar
Marcus committed
53 54
      </el-table-column>
      <el-table-column
Marcus's avatar
Marcus committed
55 56
        prop="expressNo"
        v-slot="{row}"
dcy's avatar
dcy committed
57
        :label="$t('快递单号')">
58
        {{ row.expressNo || (row.warehouseInInfoVO ? row.warehouseInInfoVO.expressNo : '') }}
Marcus's avatar
Marcus committed
59 60
      </el-table-column>
      <el-table-column
Marcus's avatar
Marcus committed
61
        prop="createTime"
dcy's avatar
dcy committed
62
        :label="$t('最后操作时间')">
Marcus's avatar
Marcus committed
63
        <template v-slot="{row}">
64
          {{ parseTime(row.updateTime) }}
Marcus's avatar
Marcus committed
65
        </template>
Marcus's avatar
Marcus committed
66 67
      </el-table-column>
      <el-table-column
Marcus's avatar
Marcus committed
68 69
        prop="diffType"
        v-slot="{row}"
dcy's avatar
dcy committed
70
        :label="$t('状态')">
71 72 73 74 75 76 77
        <dict-tag
          v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.diffType"
          :type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS"
          :value="row.warehouseInInfoVO.diffType"
          class="red"
          :class="{green: row.warehouseInInfoVO.diffType === 4}"
        />
78
        <span :class="{red: row.itemStatus === 3}" v-else>{{ row.itemStatus === 3 ? ($t('少了') + row.num + $t('箱')) : $t('待入仓') }}</span>
79
        <span class="red" v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.cartonsNumDiff">{{ row.warehouseInInfoVO.cartonsNumDiff }}{{$t('箱')}}</span>
Marcus's avatar
Marcus committed
80 81 82
      </el-table-column>
      <el-table-column
        prop="address"
dcy's avatar
dcy committed
83
        :label="$t('操作')">
Marcus's avatar
Marcus committed
84
        <template v-slot="{ row, column, $index }">
85 86
          <warehouse
            v-if="isEdit"
Marcus's avatar
Marcus committed
87
            :edit="true"
88 89 90 91 92
            :order-item-a="order.orderItemVOList[$index]"
            :order-item-b="orderItemList[$index]"
            :title="$t('修改')"
            :order="order"
            @close="getList"></warehouse>
93 94 95 96
          <template v-else-if="
          wareItem(row.orderItemId)
           && wareItem(row.orderItemId).orderWarehouseInBackItemDoList
           && wareItem(row.orderItemId).orderWarehouseInBackItemDoList.length > 0">
97
<!--            <template v-if="!order.parentOrderId">-->
98
            <warehouse
Marcus's avatar
Marcus committed
99
              v-if="!isEdit"
100 101 102 103 104
              :order-item-a="order.orderItemVOList[$index]"
              :order-item-b="orderItemList[$index]"
              :title="$t('追加')"
              :order="order"
              @close="getList"></warehouse>
105
              <el-button size="mini" type="text" @click="handleWarehousingReturn(row)">{{$t('退仓')}}</el-button>
106
<!--            </template>-->
Marcus's avatar
Marcus committed
107
          </template>
108 109 110 111 112 113 114
          <warehouse
            v-else
            :order-item-a="order.orderItemVOList[$index]"
            :order-item-b="orderItemList[$index]"
            :title="$t('入仓')"
            :order="order"
            @close="getList"></warehouse>
Marcus's avatar
Marcus committed
115 116 117 118
        </template>
      </el-table-column>
    </el-table>

119 120 121 122 123 124 125 126 127 128 129
    <el-card v-if="order.parentOrderId" style="margin-top: 20px">
      <div slot="header" class="clearfix">
        <span style="font-size: 18px">{{$t('标签箱号')}}</span>
      </div>

      <div v-for="(item, index) in label.orderLabelDtoList" :key="index" style="margin-bottom: 10px">
        <el-input-number v-model="item.start" controls-position="right"></el-input-number> -
        <el-input-number v-model="item.end" controls-position="right"></el-input-number>
        <el-button icon="el-icon-minus" circle v-show="index !== 0" @click="label.orderLabelDtoList.splice(index, 1)" style="margin-left: 10px"></el-button>
        <el-button icon="el-icon-plus" circle @click="handleLabelAdd(index)"></el-button>
      </div>
130 131 132
      <div style="text-align: center">
        <el-button type="primary" @click="handleLabelSubmit">{{$t('修改箱号')}}</el-button>
      </div>
133 134
    </el-card>

dcy's avatar
dcy committed
135
    <h2 v-if="orderSpecialNeeds.length > 0">{{$t('特殊需求')}}</h2>
Marcus's avatar
Marcus committed
136 137 138
    <el-form ref="form" :model="form" label-width="200px">
      <el-form-item :label="$i18n.locale === 'en_US' ? item.labelEn : item.label" v-for="(item, index) in orderSpecialNeeds" :key="item.value" style="width: 600px">
        <el-input v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoney" :placeholder="$t('请输入') + ($i18n.locale === 'en_US' ? item.labelEn : item.label)">
dcy's avatar
dcy committed
139
          <el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" :placeholder="$t('请选择')" slot="append" style="width: 100px">
Marcus's avatar
Marcus committed
140 141 142
            <el-option
              v-for="item in currencyList"
              :key="item.id"
Marcus's avatar
Marcus committed
143
              :label="$i18n.locale === 'en_US' ? item.titleEn : item.titleZh"
Marcus's avatar
Marcus committed
144 145 146 147 148 149
              :value="item.id">
            </el-option>
          </el-select>
        </el-input>
      </el-form-item>

dcy's avatar
dcy committed
150
      <h2>{{$t('订单数据')}}</h2>
151
      <el-form-item :label="$t('总方数')" style="width: 380px">
dcy's avatar
dcy committed
152
        <el-input v-model="form.sumVolume" :placeholder="$t('请输入总方数')" readonly>
153 154 155
          <span slot="append"></span>
        </el-input>
      </el-form-item>
156
      <el-form-item :label="$t('总重量')" style="width: 380px">
dcy's avatar
dcy committed
157
        <el-input v-model="form.sumWeight" :placeholder="$t('请输入总重量')" readonly>
158 159 160 161
          <span slot="append">kg</span>
        </el-input>
      </el-form-item>

黄卓's avatar
黄卓 committed
162 163
      <el-card style="margin-top: 15px;">
        <div slot="header" class="clearfix">
dcy's avatar
dcy committed
164
          <span style="font-size: 18px">{{$t('入仓影像')}}</span>
黄卓's avatar
黄卓 committed
165 166 167 168 169
        </div>
        <div>
          <image-and-video-upload :fileSize="50" :isShowTip="true" v-model="form.urls" ></image-and-video-upload>
        </div>
      </el-card>
Marcus's avatar
Marcus committed
170
      <div style="text-align: center;margin-top: 15px" v-if="!(order.status !== 3 && isEdit)">
dcy's avatar
dcy committed
171 172
        <el-button @click="escapeBol = true;" type="primary">{{$t('转异')}}</el-button>
        <el-button type="primary" @click="finishVisible = true">{{$t('完成入仓')}}</el-button>
173
      </div>
Marcus's avatar
Marcus committed
174
    </el-form>
黄卓's avatar
黄卓 committed
175

176
    <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
177
                           :order-id="orderId" :warehouse-id="warehouseId" :is-editing="isEdit"></warehouse-area-dialog>
黄卓's avatar
黄卓 committed
178

Marcus's avatar
Marcus committed
179 180
<!--  完成入仓  -->
    <el-dialog
dcy's avatar
dcy committed
181
      :title="$t('确认入仓')"
Marcus's avatar
Marcus committed
182 183
      :visible.sync="finishVisible"
      width="300px">
dcy's avatar
dcy committed
184
      <div style="text-align: center">{{$t('在完成入仓前,您还可以')}}</div>
Marcus's avatar
Marcus committed
185
      <div style="text-align: center;padding: 15px 0">
186
<!--        <el-button type="info" @click="areaVisible = true">{{$t('选择储位')}}</el-button>-->
dcy's avatar
dcy committed
187
        <el-button type="info" @click="isShowPrintTag = true">{{$t('打印标签')}}</el-button>
Marcus's avatar
Marcus committed
188 189
      </div>
      <div style="text-align: center">
dcy's avatar
dcy committed
190
        <el-button type="primary" @click="handleSubmit()">{{$t('确 定')}}</el-button>
Marcus's avatar
Marcus committed
191 192
      </div>
    </el-dialog>
dcy's avatar
dcy committed
193
    <el-dialog :title="order.orderNo + $t('订单转异')" center :visible.sync="escapeBol">
194 195
      <el-form label-position="top" label-width="200" ref="exceptionForm" :model="form" :rules="exceptionRules">
        <el-form-item :label="$t('原因类型')" prop="manualExceptionType">
dcy's avatar
dcy committed
196 197
          <dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector>
        </el-form-item>
198
        <el-form-item :label="$t('附件')">
dcy's avatar
dcy committed
199 200
          <image-upload v-model="form.exceptionUrls"></image-upload>
        </el-form-item>
dcy's avatar
dcy committed
201
        <el-form-item :label="$t('详细信息')">
dcy's avatar
dcy committed
202 203 204 205
          <el-input v-model="form.descZh" type="textarea"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
206
        <el-button  type="primary" @click="handleException">{{$t('确认并完成入仓')}}</el-button>
dcy's avatar
dcy committed
207
        <el-button @click="escapeBol = false">{{$t('取消')}}</el-button>
dcy's avatar
dcy committed
208 209
      </span>
    </el-dialog>
黄卓's avatar
黄卓 committed
210

211 212 213
    <print-tag v-if="isShowPrintTag" :order-id="orderId" @close="isShowPrintTag = false"></print-tag>

    <print-warehouse-receipt v-if="isShowPrint" :order-id="orderId" @close="isShowPrint = false" />
Marcus's avatar
Marcus committed
214 215 216 217 218
  </div>
</template>

<script>
import {getCurrencyList} from "@/api/ecw/currency"
Marcus's avatar
Marcus committed
219
import {
220
  getLabelByOrder, getLabelWaitInByOrder,
Marcus's avatar
Marcus committed
221 222
  getOrder,
  getOrderWarehouseIn,
黄卓's avatar
黄卓 committed
223
  getSpecialListByOrderId, listByOrderId,
黄卓's avatar
黄卓 committed
224
  orderWarehouseInFinish, orderWarehouseInUpdateLabel,
225
  rollbackDelete, warehousePictureList
黄卓's avatar
黄卓 committed
226
} from '@/api/ecw/order'
黄卓's avatar
黄卓 committed
227 228
import orderBaseInfo from "@/components/OrderBaseInfo"
import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
Marcus's avatar
Marcus committed
229
import {DICT_TYPE} from "@/utils/dict"
Marcus's avatar
Marcus committed
230
import PrintTag from "@/views/ecw/order/components/PrintTag"
231
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt"
dcy's avatar
dcy committed
232
import imageUpload from "@/components/ImageUpload";
Marcus's avatar
Marcus committed
233
import {parseTime} from "@/utils/ruoyi"
黄卓's avatar
黄卓 committed
234
import ImageAndVideoUpload from '@/components/ImageAndVideoUpload'
Marcus's avatar
Marcus committed
235
import Warehouse from "@/views/ecw/order/warehousing/components/Warehouse"
Marcus's avatar
Marcus committed
236 237
export default {
  name: "Warehousing",
Marcus's avatar
Marcus committed
238 239

  components: {
黄卓's avatar
黄卓 committed
240
    orderBaseInfo,
黄卓's avatar
黄卓 committed
241
    WarehouseAreaDialog,
242
    PrintTag,
dcy's avatar
dcy committed
243
    PrintWarehouseReceipt,
黄卓's avatar
黄卓 committed
244 245
    imageUpload,
    ImageAndVideoUpload,
Marcus's avatar
Marcus committed
246
    Warehouse
Marcus's avatar
Marcus committed
247 248
  },

Marcus's avatar
Marcus committed
249
  mounted() {
黄卓's avatar
黄卓 committed
250
    if(this.$route.query.id){
251
      this.orderId = parseInt(this.$route.query.id || undefined)
252
      this.getOrderItemList()
Marcus's avatar
Marcus committed
253
      getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data)
254 255 256 257 258 259 260 261

      Promise.all([
        this.getOrder(),
        listByOrderId({ orderId: this.orderId }).then(r => {
          this.form.orderLocationCreateReqVOList = r.data
        })
      ]).then(() => {
        // 等待仓库id和已选的储位后初始化储位信息
262 263 264 265
        this.$nextTick(() => {
          this.$refs.area.updateArea()
        })
      })
黄卓's avatar
黄卓 committed
266
    }
Marcus's avatar
Marcus committed
267 268
    getCurrencyList().then(res => this.currencyList = res.data)
  },
黄卓's avatar
黄卓 committed
269

Marcus's avatar
Marcus committed
270 271
  data() {
    return {
Marcus's avatar
Marcus committed
272
      parseTime,
Marcus's avatar
Marcus committed
273
      DICT_TYPE,
黄卓's avatar
黄卓 committed
274
      areaVisible: false,
Marcus's avatar
Marcus committed
275
      finishVisible: false,
黄卓's avatar
黄卓 committed
276
      warehousingVisible: false,
Marcus's avatar
Marcus committed
277
      form: {
黄卓's avatar
黄卓 committed
278
        orderSpecialNeedReceivableReqVoList: [],
dcy's avatar
dcy committed
279 280 281
        orderLocationCreateReqVOList: [],
        exceptionUrls:[],
        descZh:'',
282
        manualExceptionType:[],
283 284 285
        urls: [],
        sumVolume: '',
        sumWeight: '',
Marcus's avatar
Marcus committed
286 287
      },
      currencyList:[],
黄卓's avatar
黄卓 committed
288
      order: {},
Marcus's avatar
Marcus committed
289
      orderId: undefined,
Marcus's avatar
Marcus committed
290
      orderItemList: [],
Marcus's avatar
Marcus committed
291
      specialList: [],
Marcus's avatar
Marcus committed
292
      warehousing: undefined,
293
      isShowPrintTag: false,
dcy's avatar
dcy committed
294 295
      isShowPrint: false,
      escapeBol:false,
黄卓's avatar
黄卓 committed
296 297 298 299 300 301 302 303 304

      label: {
        "orderId": 0,
        "orderLabelDtoList": [
          {
            "end": 0,
            "start": 0
          }
        ]
305 306 307 308 309 310 311 312 313 314 315 316 317
      },
      exceptionRules: {
        manualExceptionType: [
          { required: true, message: '请勾选原因类型', trigger: 'change' },
          {
            validator: (rule, value, callback) => {
              if (value.length <= 0) {
                callback(new Error('请勾选原因类型'))
              }
              callback()
            }, trigger: 'change'
          }
        ]
黄卓's avatar
黄卓 committed
318
      }
黄卓's avatar
黄卓 committed
319 320 321 322
    }
  },

  methods: {
323 324 325 326
    getOrderItemList(){
      this.orderItemList = []
      return getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
    },
Marcus's avatar
Marcus committed
327 328
    getList(){
      this.getOrder()
329
      this.getOrderItemList()
Marcus's avatar
Marcus committed
330
    },
331 332 333 334 335 336 337 338
    getWarehousePictureList(){
      return warehousePictureList({
        bizId: this.order.orderId,
        type: 1
      }).then(r =>{
        this.form.urls = r.data.map(i =>i.url)
      })
    },
黄卓's avatar
黄卓 committed
339 340 341 342 343 344 345 346 347 348
    include(){
      return (state, arr) => {
        return arr.indexOf(state) > -1
      }
    },
    exclude(){
      return (state, arr) => {
        return arr.indexOf(state) == -1
      }
    },
349 350 351 352 353 354 355 356 357 358
    handleLabelSubmit(){
      orderWarehouseInUpdateLabel({
        ...this.label,
        orderId: this.orderId
      }).then(r => {
        if (r.code === 0){
          this.$message.success(r.msg || this.$t('修改标签箱号成功'))
        }
      })
    },
359 360 361 362

    // 箱号标签回显
    getLabelByOrder(){
      getLabelByOrder(this.orderId).then(r => {
363
        if (r.code === 0 && !! r.data && r.data.length > 0) {
364
          this.label.orderLabelDtoList = r.data
365 366 367 368 369 370 371 372
        } else {
          // 没有历史数据,查默认值
          getLabelWaitInByOrder(this.orderId).then(r => {
            console.log(r)
            if (r.code === 0 && !! r.data) {
              this.label.orderLabelDtoList = [r.data]
            }
          })
黄卓's avatar
黄卓 committed
373 374 375 376 377 378 379 380 381
        }
      })
    },
    handleLabelAdd(index){
      this.label.orderLabelDtoList.splice(index + 1, 0, {
        "end": '',
        "start": ''
      })
    },
382
    getTowSum(){
383 384 385 386 387 388 389 390
      // let sumVolume = 0
      // let sumWeight = 0
      // this.order.orderItemVOList.forEach(e => {
      //   if (e?.warehouseInInfoVO?.volume) sumVolume += e.warehouseInInfoVO.volume
      //   if (e?.warehouseInInfoVO?.weight) sumWeight += e.warehouseInInfoVO.weight
      // })
      this.form.sumVolume = this.order.sumVolume// || sumVolume
      this.form.sumWeight = this.order.sumWeight// || sumWeight
391 392
    },
    getOrder(){
393
      return getOrder(this.orderId).then(r => {
394 395
        this.order = r.data
        this.getTowSum()
396 397
      }).then(() => {
        this.getLabelByOrder()
398
        this.getWarehousePictureList()
399 400
      })
    },
401 402 403 404 405 406 407 408 409
    specialHas0(){
      let result = false
      this.form.orderSpecialNeedReceivableReqVoList.forEach(e => {
        if (e.receivableMoney === '0' || e.receivableMoney === ''){
          result = true
        }
      })
      return result
    },
410 411 412 413
    handleException() {
      this.$refs.exceptionForm.validate((valid) => {
        if (valid) {
          this.handleSubmit()
414 415
        } else {
          this.$message.warning('请勾选原因类型')
416 417 418
        }
      })
    },
419 420
    async handleSubmit() {
      if (this.specialHas0()) {
dcy's avatar
dcy committed
421 422 423
        const confirm = await this.$confirm(this.$t('有特需费用为0或未填写,请问是否继续?'), this.$t('注意'), {
          confirmButtonText: this.$t('继续'),
          cancelButtonText: this.$t('取消'),
424 425 426 427 428 429
          type: 'warning'
        })
        if (confirm !== 'confirm'){
          return
        }
      }
430
      let form = {
Marcus's avatar
Marcus committed
431
        orderSpecialNeedReceivableReqVoList: this.form.orderSpecialNeedReceivableReqVoList,
432
        "orderLocationCreateReqVOList": this.form.orderLocationCreateReqVOList,
黄卓's avatar
黄卓 committed
433
        "orderId": this.order.orderId,
434 435
        urls: this.form.urls,
        sumVolume: this.form.sumVolume,
436 437
        sumWeight: this.form.sumWeight,
        isAppend: this.isAdd
dcy's avatar
dcy committed
438
      }
439 440 441 442 443 444

      // 标签箱号
      if (this.order.parentOrderId) {
        form.labelList = this.label.orderLabelDtoList || []
      }

445
      if (this.escapeBol) {
446
        form.exceptionUrls = this.form.exceptionUrls.length !== 0 ? this.form.exceptionUrls?.split(',') : []
447
        form.descZh = this.form.descZh;
448
        form.manualExceptionType = this.form.manualExceptionType.join(',')
449
      }
450
      orderWarehouseInFinish(form).then(r => {
Marcus's avatar
Marcus committed
451
        if (r.code === 0) {
dcy's avatar
dcy committed
452
          this.escapeBol = false;
453
          this.finishVisible = false
dcy's avatar
dcy committed
454
          const message = !r.data ? this.$t('该订单已成功入仓,是否打印?') : `<h3>${this.$t('货物已入仓,存在异常')}</h3>${this.$t('该订单已成功入仓,是否打印?')}`
Marcus's avatar
Marcus committed
455
          this.$confirm(
456
            message,
dcy's avatar
dcy committed
457
            this.$t('货物已入仓'),
Marcus's avatar
Marcus committed
458
            {
dcy's avatar
dcy committed
459 460
              confirmButtonText: this.$t(''),
              cancelButtonText: this.$t(''),
461
              dangerouslyUseHTMLString: true
Marcus's avatar
Marcus committed
462
            }
463
          ).then(() => {
464
            this.isShowPrint = true
465
          }).catch(() => {
Marcus's avatar
Marcus committed
466
            // this.$store.dispatch('tagsView/delVisitedView')
dcy's avatar
dcy committed
467
            this.$message.success(this.$t('入仓成功'))
468
            this.$tab.closePage()
Marcus's avatar
Marcus committed
469 470
          })
        }
Marcus's avatar
Marcus committed
471 472
      })
    },
Marcus's avatar
Marcus committed
473
    handleWarehousingReturn(item){
dcy's avatar
dcy committed
474 475 476
      this.$confirm(item.prodTitleZh + this.$t('退仓后不可恢复,是否确认退仓?'), this.$t('确定要退仓?'), {
        confirmButtonText: this.$t('确定'),
        cancelButtonText: this.$t('取消'),
Marcus's avatar
Marcus committed
477 478
        type: 'warning'
      }).then(() => {
Marcus's avatar
Marcus committed
479
        rollbackDelete({
Marcus's avatar
Marcus committed
480
          "orderId": item.orderId,
Marcus's avatar
Marcus committed
481
          "orderItemId": item.orderItemId
Marcus's avatar
Marcus committed
482 483 484
        }).then(() => {
          this.$message({
            type: 'success',
dcy's avatar
dcy committed
485
            message: this.$t('货物退仓成功!')
Marcus's avatar
Marcus committed
486
          });
Marcus's avatar
Marcus committed
487

488
          this.getOrderItemList()
489
          this.getOrder()
Marcus's avatar
Marcus committed
490 491
        })

黄卓's avatar
黄卓 committed
492
      }).catch(e => {
Marcus's avatar
Marcus committed
493
      });
Marcus's avatar
Marcus committed
494
    }
Marcus's avatar
Marcus committed
495 496 497
  },

  watch: {
Marcus's avatar
Marcus committed
498 499
    orderSpecialNeeds(val){
      val.forEach(e => {
500
        this.form.orderSpecialNeedReceivableReqVoList.push({
Marcus's avatar
Marcus committed
501
          "id": e.id,
502 503
          "receivableMoney": e.transFee || '',
          "receivableMoneyCurrency": e.transCurrency || 3
Marcus's avatar
Marcus committed
504 505 506 507 508 509
        })
      })
    }
  },

  computed: {
510 511 512 513 514 515
    // 根据orderItemId获取入仓item
    wareItem(){
      return orderItemId => {
        return this.orderItemList.find(item => item.orderItemId == orderItemId)
      }
    },
516 517 518
    isAdd() {
      return this.$route.path === "/order/warehousing-add"
    },
黄卓's avatar
黄卓 committed
519
    isEdit() {
520
      return this.$route.path === "/order/warehousing-update"
黄卓's avatar
黄卓 committed
521 522
    },
    title() {
Marcus's avatar
Marcus committed
523
      return this.$i18n.locale === 'en_US' ? this.$route.meta.titleEn : this.$route.name
黄卓's avatar
黄卓 committed
524
    },
Marcus's avatar
Marcus committed
525 526 527 528 529 530 531 532
    orderSpecialNeedsDict() {
      return this.$store.state.dict.dictDatas.order_special_needs
    },
    orderSpecialNeeds(){
      const result = []
      this.specialList.forEach(e => {
        const t = this.orderSpecialNeedsDict.find(f => f.value === e.advanceType)
        if(t) {
Marcus's avatar
Marcus committed
533
          result.push({...e, label: t.label, labelEn: t.labelEn})
Marcus's avatar
Marcus committed
534 535 536
        }
      })
      return result
537
    },
Marcus's avatar
Marcus committed
538 539
    warehouseId(){
      return this.order?.logisticsInfoDto?.startWarehouseId
Marcus's avatar
Marcus committed
540
    }
Marcus's avatar
Marcus committed
541 542 543 544
  }
}
</script>

Marcus's avatar
Marcus committed
545 546 547 548 549 550 551 552
<style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red{
  color: $--color-danger;
}
.green{
  color: $--color-success;
}
Marcus's avatar
Marcus committed
553
</style>