index.vue 19.4 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">
dcy's avatar
dcy committed
46 47 48 49
            {{$t('品牌')}}{{ [$t('无牌'), $t('有牌'), $t('中性')][row.feeType] }}<br>
            {{$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>
Marcus's avatar
Marcus committed
93
<!--          <el-button v-if="isEdit" size="mini" type="text" @click="handleWarehousing(row)">{{$t('修改')}}</el-button>-->
94 95 96 97
          <template v-else-if="
          wareItem(row.orderItemId)
           && wareItem(row.orderItemId).orderWarehouseInBackItemDoList
           && wareItem(row.orderItemId).orderWarehouseInBackItemDoList.length > 0">
98
<!--            <template v-if="!order.parentOrderId">-->
99
            <warehouse
Marcus's avatar
Marcus committed
100
              v-if="!isEdit"
101 102 103 104 105
              :order-item-a="order.orderItemVOList[$index]"
              :order-item-b="orderItemList[$index]"
              :title="$t('追加')"
              :order="order"
              @close="getList"></warehouse>
Marcus's avatar
Marcus committed
106
<!--            <el-button size="mini" type="text" @click="handleWarehousing(row)">{{$t('追加')}}</el-button>-->
107
              <el-button size="mini" type="text" @click="handleWarehousingReturn(row)">{{$t('退仓')}}</el-button>
108
<!--            </template>-->
Marcus's avatar
Marcus committed
109
          </template>
110 111 112 113 114 115 116
          <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
117
<!--          <el-button v-else size="mini" type="text" @click="handleWarehousing(row)">{{$t('入仓')}}</el-button>-->
Marcus's avatar
Marcus committed
118 119 120 121
        </template>
      </el-table-column>
    </el-table>

122 123 124 125 126 127 128 129 130 131 132
    <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>
133 134 135
      <div style="text-align: center">
        <el-button type="primary" @click="handleLabelSubmit">{{$t('修改箱号')}}</el-button>
      </div>
136 137
    </el-card>

dcy's avatar
dcy committed
138
    <h2 v-if="orderSpecialNeeds.length > 0">{{$t('特殊需求')}}</h2>
Marcus's avatar
Marcus committed
139 140 141
    <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
142
          <el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" :placeholder="$t('请选择')" slot="append" style="width: 100px">
Marcus's avatar
Marcus committed
143 144 145
            <el-option
              v-for="item in currencyList"
              :key="item.id"
Marcus's avatar
Marcus committed
146
              :label="$i18n.locale === 'en_US' ? item.titleEn : item.titleZh"
Marcus's avatar
Marcus committed
147 148 149 150 151 152
              :value="item.id">
            </el-option>
          </el-select>
        </el-input>
      </el-form-item>

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

黄卓's avatar
黄卓 committed
165 166
      <el-card style="margin-top: 15px;">
        <div slot="header" class="clearfix">
dcy's avatar
dcy committed
167
          <span style="font-size: 18px">{{$t('入仓影像')}}</span>
黄卓's avatar
黄卓 committed
168 169 170 171 172
        </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
173
      <div style="text-align: center;margin-top: 15px" v-if="!(order.status !== 3 && isEdit)">
dcy's avatar
dcy committed
174 175
        <el-button @click="escapeBol = true;" type="primary">{{$t('转异')}}</el-button>
        <el-button type="primary" @click="finishVisible = true">{{$t('完成入仓')}}</el-button>
176
      </div>
Marcus's avatar
Marcus committed
177
    </el-form>
黄卓's avatar
黄卓 committed
178

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

Marcus's avatar
Marcus committed
182
    <edit-dialog :order="order" :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit" :is-jiyun="order.type === 1 || order.type === '1'"></edit-dialog>
Marcus's avatar
Marcus committed
183 184 185

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

216 217 218
    <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
219 220 221 222 223
  </div>
</template>

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

  components: {
黄卓's avatar
黄卓 committed
246
    orderBaseInfo,
黄卓's avatar
黄卓 committed
247
    WarehouseAreaDialog,
Marcus's avatar
Marcus committed
248
    editDialog,
249
    PrintTag,
dcy's avatar
dcy committed
250
    PrintWarehouseReceipt,
黄卓's avatar
黄卓 committed
251 252
    imageUpload,
    ImageAndVideoUpload,
Marcus's avatar
Marcus committed
253
    Warehouse
Marcus's avatar
Marcus committed
254 255
  },

Marcus's avatar
Marcus committed
256
  mounted() {
黄卓's avatar
黄卓 committed
257
    if(this.$route.query.id){
258
      this.orderId = parseInt(this.$route.query.id || undefined)
259
      this.getOrderItemList()
Marcus's avatar
Marcus committed
260
      getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data)
261 262 263 264 265 266 267 268

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

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

      label: {
        "orderId": 0,
        "orderLabelDtoList": [
          {
            "end": 0,
            "start": 0
          }
        ]
      }
黄卓's avatar
黄卓 committed
313 314 315 316
    }
  },

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

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

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

430
      if (this.escapeBol) {
431
        form.exceptionUrls = this.form.exceptionUrls.length !== 0 ? this.form.exceptionUrls?.split(',') : []
432
        form.descZh = this.form.descZh;
433
        form.manualExceptionType = this.form.manualExceptionType.join(',')
434
      }
435
      orderWarehouseInFinish(form).then(r => {
Marcus's avatar
Marcus committed
436
        if (r.code === 0) {
dcy's avatar
dcy committed
437
          this.escapeBol = false;
438
          this.finishVisible = false
dcy's avatar
dcy committed
439
          const message = !r.data ? this.$t('该订单已成功入仓,是否打印?') : `<h3>${this.$t('货物已入仓,存在异常')}</h3>${this.$t('该订单已成功入仓,是否打印?')}`
Marcus's avatar
Marcus committed
440
          this.$confirm(
441
            message,
dcy's avatar
dcy committed
442
            this.$t('货物已入仓'),
Marcus's avatar
Marcus committed
443
            {
dcy's avatar
dcy committed
444 445
              confirmButtonText: this.$t(''),
              cancelButtonText: this.$t(''),
446
              dangerouslyUseHTMLString: true
Marcus's avatar
Marcus committed
447
            }
448
          ).then(() => {
449
            this.isShowPrint = true
450
          }).catch(() => {
Marcus's avatar
Marcus committed
451
            // this.$store.dispatch('tagsView/delVisitedView')
dcy's avatar
dcy committed
452
            this.$message.success(this.$t('入仓成功'))
453
            this.$tab.closePage()
Marcus's avatar
Marcus committed
454 455
          })
        }
Marcus's avatar
Marcus committed
456 457
      })
    },
dragondean@qq.com's avatar
dragondean@qq.com committed
458 459 460
    handleWarehousing(row) {
      let wareItem = this.orderItemList.find(item => item.orderItemId == row.orderItemId) || {}
      this.warehousing = {...row, ...wareItem}
黄卓's avatar
黄卓 committed
461
      this.warehousingVisible = true
Marcus's avatar
Marcus committed
462 463
    },
    handleWarehousingReturn(item){
dcy's avatar
dcy committed
464 465 466
      this.$confirm(item.prodTitleZh + this.$t('退仓后不可恢复,是否确认退仓?'), this.$t('确定要退仓?'), {
        confirmButtonText: this.$t('确定'),
        cancelButtonText: this.$t('取消'),
Marcus's avatar
Marcus committed
467 468
        type: 'warning'
      }).then(() => {
Marcus's avatar
Marcus committed
469
        rollbackDelete({
Marcus's avatar
Marcus committed
470
          "orderId": item.orderId,
Marcus's avatar
Marcus committed
471
          "orderItemId": item.orderItemId
Marcus's avatar
Marcus committed
472 473 474
        }).then(() => {
          this.$message({
            type: 'success',
dcy's avatar
dcy committed
475
            message: this.$t('货物退仓成功!')
Marcus's avatar
Marcus committed
476
          });
Marcus's avatar
Marcus committed
477

478
          this.getOrderItemList()
479
          this.getOrder()
Marcus's avatar
Marcus committed
480 481
        })

黄卓's avatar
黄卓 committed
482
      }).catch(e => {
Marcus's avatar
Marcus committed
483
      });
Marcus's avatar
Marcus committed
484
    }
Marcus's avatar
Marcus committed
485 486 487 488 489
  },

  watch: {
    warehousingVisible(val) {
      if (!val){
490
        this.getOrder()
491
        this.getOrderItemList()
Marcus's avatar
Marcus committed
492
      }
Marcus's avatar
Marcus committed
493 494 495
    },
    orderSpecialNeeds(val){
      val.forEach(e => {
496
        this.form.orderSpecialNeedReceivableReqVoList.push({
Marcus's avatar
Marcus committed
497
          "id": e.id,
498 499
          "receivableMoney": e.transFee || '',
          "receivableMoneyCurrency": e.transCurrency || 3
Marcus's avatar
Marcus committed
500 501 502 503 504 505
        })
      })
    }
  },

  computed: {
506 507 508 509 510 511
    // 根据orderItemId获取入仓item
    wareItem(){
      return orderItemId => {
        return this.orderItemList.find(item => item.orderItemId == orderItemId)
      }
    },
512 513 514
    isAdd() {
      return this.$route.path === "/order/warehousing-add"
    },
黄卓's avatar
黄卓 committed
515
    isEdit() {
516
      return this.$route.path === "/order/warehousing-update"
黄卓's avatar
黄卓 committed
517 518
    },
    title() {
Marcus's avatar
Marcus committed
519
      return this.$i18n.locale === 'en_US' ? this.$route.meta.titleEn : this.$route.name
黄卓's avatar
黄卓 committed
520
    },
Marcus's avatar
Marcus committed
521 522 523 524 525 526 527 528
    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
529
          result.push({...e, label: t.label, labelEn: t.labelEn})
Marcus's avatar
Marcus committed
530 531 532
        }
      })
      return result
533
    },
Marcus's avatar
Marcus committed
534 535
    warehouseId(){
      return this.order?.logisticsInfoDto?.startWarehouseId
Marcus's avatar
Marcus committed
536
    }
Marcus's avatar
Marcus committed
537 538 539 540
  }
}
</script>

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