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

99 100 101 102 103 104 105 106 107 108 109
    <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>
110 111 112
      <div style="text-align: center">
        <el-button type="primary" @click="handleLabelSubmit">{{$t('修改箱号')}}</el-button>
      </div>
113 114
    </el-card>

dcy's avatar
dcy committed
115
    <h2 v-if="orderSpecialNeeds.length > 0">{{$t('特殊需求')}}</h2>
Marcus's avatar
Marcus committed
116 117 118
    <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
119
          <el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" :placeholder="$t('请选择')" slot="append" style="width: 100px">
Marcus's avatar
Marcus committed
120 121 122
            <el-option
              v-for="item in currencyList"
              :key="item.id"
Marcus's avatar
Marcus committed
123
              :label="$i18n.locale === 'en_US' ? item.titleEn : item.titleZh"
Marcus's avatar
Marcus committed
124 125 126 127 128 129
              :value="item.id">
            </el-option>
          </el-select>
        </el-input>
      </el-form-item>

dcy's avatar
dcy committed
130
      <h2>{{$t('订单数据')}}</h2>
131
      <el-form-item :label="$t('总方数')" style="width: 380px">
dcy's avatar
dcy committed
132
        <el-input v-model="form.sumVolume" :placeholder="$t('请输入总方数')" readonly>
133 134 135
          <span slot="append"></span>
        </el-input>
      </el-form-item>
136
      <el-form-item :label="$t('总重量')" style="width: 380px">
dcy's avatar
dcy committed
137
        <el-input v-model="form.sumWeight" :placeholder="$t('请输入总重量')" readonly>
138 139 140 141
          <span slot="append">kg</span>
        </el-input>
      </el-form-item>

黄卓's avatar
黄卓 committed
142 143
      <el-card style="margin-top: 15px;">
        <div slot="header" class="clearfix">
dcy's avatar
dcy committed
144
          <span style="font-size: 18px">{{$t('入仓影像')}}</span>
黄卓's avatar
黄卓 committed
145 146 147 148 149
        </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
150
      <div style="text-align: center;margin-top: 15px" v-if="!isEdit">
dcy's avatar
dcy committed
151 152
        <el-button @click="escapeBol = true;" type="primary">{{$t('转异')}}</el-button>
        <el-button type="primary" @click="finishVisible = true">{{$t('完成入仓')}}</el-button>
153
      </div>
Marcus's avatar
Marcus committed
154
    </el-form>
黄卓's avatar
黄卓 committed
155

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

Marcus's avatar
Marcus committed
159
    <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
160 161 162

<!--  完成入仓  -->
    <el-dialog
dcy's avatar
dcy committed
163
      :title="$t('确认入仓')"
Marcus's avatar
Marcus committed
164 165
      :visible.sync="finishVisible"
      width="300px">
dcy's avatar
dcy committed
166
      <div style="text-align: center">{{$t('在完成入仓前,您还可以')}}</div>
Marcus's avatar
Marcus committed
167
      <div style="text-align: center;padding: 15px 0">
dcy's avatar
dcy committed
168 169
        <el-button type="info" @click="areaVisible = true">{{$t('选择储位')}}</el-button>
        <el-button type="info" @click="isShowPrintTag = true">{{$t('打印标签')}}</el-button>
Marcus's avatar
Marcus committed
170 171
      </div>
      <div style="text-align: center">
dcy's avatar
dcy committed
172
        <el-button type="primary" @click="handleSubmit()">{{$t('确 定')}}</el-button>
Marcus's avatar
Marcus committed
173 174
      </div>
    </el-dialog>
dcy's avatar
dcy committed
175
    <el-dialog :title="order.orderNo + $t('订单转异')" center :visible.sync="escapeBol">
dcy's avatar
dcy committed
176
      <el-form label-position="top" label-width="200">
dcy's avatar
dcy committed
177
        <el-form-item :label="$t('原因类型')">
dcy's avatar
dcy committed
178 179
          <dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector>
        </el-form-item>
180
        <el-form-item :label="$t('附件')">
dcy's avatar
dcy committed
181 182
          <image-upload v-model="form.exceptionUrls"></image-upload>
        </el-form-item>
dcy's avatar
dcy committed
183
        <el-form-item :label="$t('详细信息')">
dcy's avatar
dcy committed
184 185 186 187
          <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
188 189
        <el-button  type="primary" @click="handleSubmit">{{$t('确认并完成入仓')}}</el-button>
        <el-button @click="escapeBol = false">{{$t('取消')}}</el-button>
dcy's avatar
dcy committed
190 191
      </span>
    </el-dialog>
黄卓's avatar
黄卓 committed
192

193 194 195
    <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
196 197 198 199 200
  </div>
</template>

<script>
import {getCurrencyList} from "@/api/ecw/currency"
Marcus's avatar
Marcus committed
201
import {
202
  getLabelByOrder, getLabelWaitInByOrder,
Marcus's avatar
Marcus committed
203 204
  getOrder,
  getOrderWarehouseIn,
黄卓's avatar
黄卓 committed
205
  getSpecialListByOrderId, listByOrderId,
黄卓's avatar
黄卓 committed
206
  orderWarehouseInFinish, orderWarehouseInUpdateLabel,
207
  rollbackDelete, warehousePictureList
黄卓's avatar
黄卓 committed
208
} from '@/api/ecw/order'
黄卓's avatar
黄卓 committed
209 210
import orderBaseInfo from "@/components/OrderBaseInfo"
import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
黄卓's avatar
黄卓 committed
211
import editDialog from '@/views/ecw/order/warehousing/components/editDialog'
Marcus's avatar
Marcus committed
212
import {DICT_TYPE} from "@/utils/dict"
Marcus's avatar
Marcus committed
213
import PrintTag from "@/views/ecw/order/components/PrintTag"
214
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt"
dcy's avatar
dcy committed
215
import imageUpload from "@/components/ImageUpload";
Marcus's avatar
Marcus committed
216
import {parseTime} from "@/utils/ruoyi"
黄卓's avatar
黄卓 committed
217
import ImageAndVideoUpload from '@/components/ImageAndVideoUpload'
Marcus's avatar
Marcus committed
218
import Warehouse from "@/views/ecw/order/warehousing/components/Warehouse"
Marcus's avatar
Marcus committed
219 220
export default {
  name: "Warehousing",
Marcus's avatar
Marcus committed
221 222

  components: {
黄卓's avatar
黄卓 committed
223
    orderBaseInfo,
黄卓's avatar
黄卓 committed
224
    WarehouseAreaDialog,
Marcus's avatar
Marcus committed
225
    editDialog,
226
    PrintTag,
dcy's avatar
dcy committed
227
    PrintWarehouseReceipt,
黄卓's avatar
黄卓 committed
228 229
    imageUpload,
    ImageAndVideoUpload,
Marcus's avatar
Marcus committed
230
    Warehouse
Marcus's avatar
Marcus committed
231 232
  },

Marcus's avatar
Marcus committed
233
  mounted() {
黄卓's avatar
黄卓 committed
234
    if(this.$route.query.id){
235
      this.orderId = parseInt(this.$route.query.id || undefined)
Marcus's avatar
Marcus committed
236
      getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
Marcus's avatar
Marcus committed
237
      getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data)
238 239 240 241 242 243 244 245

      Promise.all([
        this.getOrder(),
        listByOrderId({ orderId: this.orderId }).then(r => {
          this.form.orderLocationCreateReqVOList = r.data
        })
      ]).then(() => {
        // 等待仓库id和已选的储位后初始化储位信息
246 247 248 249
        this.$nextTick(() => {
          this.$refs.area.updateArea()
        })
      })
黄卓's avatar
黄卓 committed
250
    }
Marcus's avatar
Marcus committed
251 252
    getCurrencyList().then(res => this.currencyList = res.data)
  },
黄卓's avatar
黄卓 committed
253

Marcus's avatar
Marcus committed
254 255
  data() {
    return {
Marcus's avatar
Marcus committed
256
      parseTime,
Marcus's avatar
Marcus committed
257
      DICT_TYPE,
黄卓's avatar
黄卓 committed
258
      areaVisible: false,
Marcus's avatar
Marcus committed
259
      finishVisible: false,
黄卓's avatar
黄卓 committed
260
      warehousingVisible: false,
Marcus's avatar
Marcus committed
261
      form: {
黄卓's avatar
黄卓 committed
262
        orderSpecialNeedReceivableReqVoList: [],
dcy's avatar
dcy committed
263 264 265 266
        orderLocationCreateReqVOList: [],
        exceptionUrls:[],
        descZh:'',
        manualExceptionType:'',
267 268 269
        urls: [],
        sumVolume: '',
        sumWeight: '',
Marcus's avatar
Marcus committed
270 271
      },
      currencyList:[],
黄卓's avatar
黄卓 committed
272
      order: {},
Marcus's avatar
Marcus committed
273
      orderId: undefined,
Marcus's avatar
Marcus committed
274
      orderItemList: [],
Marcus's avatar
Marcus committed
275
      specialList: [],
Marcus's avatar
Marcus committed
276
      warehousing: undefined,
277
      isShowPrintTag: false,
dcy's avatar
dcy committed
278 279
      isShowPrint: false,
      escapeBol:false,
黄卓's avatar
黄卓 committed
280 281 282 283 284 285 286 287 288 289

      label: {
        "orderId": 0,
        "orderLabelDtoList": [
          {
            "end": 0,
            "start": 0
          }
        ]
      }
黄卓's avatar
黄卓 committed
290 291 292 293
    }
  },

  methods: {
Marcus's avatar
Marcus committed
294 295 296 297
    getList(){
      this.getOrder()
      getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
    },
298 299 300 301 302 303 304 305
    getWarehousePictureList(){
      return warehousePictureList({
        bizId: this.order.orderId,
        type: 1
      }).then(r =>{
        this.form.urls = r.data.map(i =>i.url)
      })
    },
黄卓's avatar
黄卓 committed
306 307 308 309 310 311 312 313 314 315
    include(){
      return (state, arr) => {
        return arr.indexOf(state) > -1
      }
    },
    exclude(){
      return (state, arr) => {
        return arr.indexOf(state) == -1
      }
    },
316 317 318 319 320 321 322 323 324 325
    handleLabelSubmit(){
      orderWarehouseInUpdateLabel({
        ...this.label,
        orderId: this.orderId
      }).then(r => {
        if (r.code === 0){
          this.$message.success(r.msg || this.$t('修改标签箱号成功'))
        }
      })
    },
326 327 328 329

    // 箱号标签回显
    getLabelByOrder(){
      getLabelByOrder(this.orderId).then(r => {
330
        if (r.code === 0 && !! r.data && r.data.length > 0) {
331
          this.label.orderLabelDtoList = r.data
332 333 334 335 336 337 338 339
        } else {
          // 没有历史数据,查默认值
          getLabelWaitInByOrder(this.orderId).then(r => {
            console.log(r)
            if (r.code === 0 && !! r.data) {
              this.label.orderLabelDtoList = [r.data]
            }
          })
黄卓's avatar
黄卓 committed
340 341 342 343 344 345 346 347 348
        }
      })
    },
    handleLabelAdd(index){
      this.label.orderLabelDtoList.splice(index + 1, 0, {
        "end": '',
        "start": ''
      })
    },
349
    getTowSum(){
350 351 352 353 354 355 356 357
      // 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
358 359
    },
    getOrder(){
360
      return getOrder(this.orderId).then(r => {
361 362
        this.order = r.data
        this.getTowSum()
363 364
      }).then(() => {
        this.getLabelByOrder()
365
        this.getWarehousePictureList()
366 367
      })
    },
368 369 370 371 372 373 374 375 376 377 378
    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
379 380 381
        const confirm = await this.$confirm(this.$t('有特需费用为0或未填写,请问是否继续?'), this.$t('注意'), {
          confirmButtonText: this.$t('继续'),
          cancelButtonText: this.$t('取消'),
382 383 384 385 386 387
          type: 'warning'
        })
        if (confirm !== 'confirm'){
          return
        }
      }
388
      let form = {
Marcus's avatar
Marcus committed
389
        orderSpecialNeedReceivableReqVoList: this.form.orderSpecialNeedReceivableReqVoList,
390
        "orderLocationCreateReqVOList": this.form.orderLocationCreateReqVOList,
黄卓's avatar
黄卓 committed
391
        "orderId": this.order.orderId,
392 393
        urls: this.form.urls,
        sumVolume: this.form.sumVolume,
394 395
        sumWeight: this.form.sumWeight,
        isAppend: this.isAdd
dcy's avatar
dcy committed
396
      }
397 398 399 400 401 402

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

403
      if (this.escapeBol) {
404
        form.exceptionUrls = this.form.exceptionUrls.length !== 0 ? this.form.exceptionUrls?.split(',') : []
405
        form.descZh = this.form.descZh;
406
        form.manualExceptionType = this.form.manualExceptionType.join(',')
407
      }
408
      orderWarehouseInFinish(form).then(r => {
Marcus's avatar
Marcus committed
409
        if (r.code === 0) {
dcy's avatar
dcy committed
410
          this.escapeBol = false;
411
          this.finishVisible = false
dcy's avatar
dcy committed
412
          const message = !r.data ? this.$t('该订单已成功入仓,是否打印?') : `<h3>${this.$t('货物已入仓,存在异常')}</h3>${this.$t('该订单已成功入仓,是否打印?')}`
Marcus's avatar
Marcus committed
413
          this.$confirm(
414
            message,
dcy's avatar
dcy committed
415
            this.$t('货物已入仓'),
Marcus's avatar
Marcus committed
416
            {
dcy's avatar
dcy committed
417 418
              confirmButtonText: this.$t(''),
              cancelButtonText: this.$t(''),
419
              dangerouslyUseHTMLString: true
Marcus's avatar
Marcus committed
420
            }
421
          ).then(() => {
422
            this.isShowPrint = true
423
          }).catch(() => {
Marcus's avatar
Marcus committed
424
            // this.$store.dispatch('tagsView/delVisitedView')
dcy's avatar
dcy committed
425
            this.$message.success(this.$t('入仓成功'))
426
            this.$tab.closePage()
Marcus's avatar
Marcus committed
427 428
          })
        }
Marcus's avatar
Marcus committed
429 430
      })
    },
dragondean@qq.com's avatar
dragondean@qq.com committed
431 432 433
    handleWarehousing(row) {
      let wareItem = this.orderItemList.find(item => item.orderItemId == row.orderItemId) || {}
      this.warehousing = {...row, ...wareItem}
黄卓's avatar
黄卓 committed
434
      this.warehousingVisible = true
Marcus's avatar
Marcus committed
435 436
    },
    handleWarehousingReturn(item){
dcy's avatar
dcy committed
437 438 439
      this.$confirm(item.prodTitleZh + this.$t('退仓后不可恢复,是否确认退仓?'), this.$t('确定要退仓?'), {
        confirmButtonText: this.$t('确定'),
        cancelButtonText: this.$t('取消'),
Marcus's avatar
Marcus committed
440 441
        type: 'warning'
      }).then(() => {
Marcus's avatar
Marcus committed
442
        rollbackDelete({
Marcus's avatar
Marcus committed
443
          "orderId": item.orderId,
Marcus's avatar
Marcus committed
444
          "orderItemId": item.orderItemId
Marcus's avatar
Marcus committed
445 446 447
        }).then(() => {
          this.$message({
            type: 'success',
dcy's avatar
dcy committed
448
            message: this.$t('货物退仓成功!')
Marcus's avatar
Marcus committed
449
          });
Marcus's avatar
Marcus committed
450

Marcus's avatar
Marcus committed
451
          getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
452
          this.getOrder()
Marcus's avatar
Marcus committed
453 454
        })

黄卓's avatar
黄卓 committed
455
      }).catch(e => {
Marcus's avatar
Marcus committed
456
      });
Marcus's avatar
Marcus committed
457
    }
Marcus's avatar
Marcus committed
458 459 460 461 462
  },

  watch: {
    warehousingVisible(val) {
      if (!val){
463
        this.getOrder()
Marcus's avatar
Marcus committed
464
        getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data)
Marcus's avatar
Marcus committed
465
      }
Marcus's avatar
Marcus committed
466 467 468
    },
    orderSpecialNeeds(val){
      val.forEach(e => {
469
        this.form.orderSpecialNeedReceivableReqVoList.push({
Marcus's avatar
Marcus committed
470
          "id": e.id,
471 472
          "receivableMoney": e.transFee || '',
          "receivableMoneyCurrency": e.transCurrency || 3
Marcus's avatar
Marcus committed
473 474 475 476 477 478
        })
      })
    }
  },

  computed: {
479 480 481 482 483 484
    // 根据orderItemId获取入仓item
    wareItem(){
      return orderItemId => {
        return this.orderItemList.find(item => item.orderItemId == orderItemId)
      }
    },
485 486 487
    isAdd() {
      return this.$route.path === "/order/warehousing-add"
    },
黄卓's avatar
黄卓 committed
488 489 490 491
    isEdit() {
      return this.$route.path === "/order/warehousing-update"
    },
    title() {
Marcus's avatar
Marcus committed
492
      return this.$i18n.locale === 'en_US' ? this.$route.meta.titleEn : this.$route.name
黄卓's avatar
黄卓 committed
493
    },
Marcus's avatar
Marcus committed
494 495 496 497 498 499 500 501
    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
502
          result.push({...e, label: t.label, labelEn: t.labelEn})
Marcus's avatar
Marcus committed
503 504 505
        }
      })
      return result
506
    },
Marcus's avatar
Marcus committed
507 508
    warehouseId(){
      return this.order?.logisticsInfoDto?.startWarehouseId
Marcus's avatar
Marcus committed
509
    }
Marcus's avatar
Marcus committed
510 511 512 513
  }
}
</script>

Marcus's avatar
Marcus committed
514 515 516 517 518 519 520 521
<style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red{
  color: $--color-danger;
}
.green{
  color: $--color-success;
}
Marcus's avatar
Marcus committed
522
</style>