splitApply.vue 25.8 KB
Newer Older
1 2 3 4
<template>
  <div class="app-container">
    <!-- 搜索工作栏 -->
    <el-card>
我在何方's avatar
我在何方 committed
5
        <div slot="header" class="card-title">{{$t('拆单申请')}}-{{orderData.orderNo||''}}</div>
6
        <div class="btn-header">
我在何方's avatar
我在何方 committed
7
          <span class="card-title">{{$t('原单信息')}}</span>
8
          <div>
我在何方's avatar
我在何方 committed
9
             <span v-if="orderData.abnormalState!=0" class="red">{{$t('异常无法拆单')}}</span>
我在何方's avatar
我在何方 committed
10
             <el-button v-else type="primary" @click="addSplit" :disabled="orderData.inWarehouseState==207">{{$t('新建拆单')}} </el-button>
11 12 13
          </div>
        </div>
        <el-descriptions :column="4">
我在何方's avatar
我在何方 committed
14 15
            <el-descriptions-item :label="$t('唛头')">
                {{orderData.marks?orderData.marks:$t('')}}
16
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
17
            <el-descriptions-item :label="$t('已到箱数/总箱数')">
我在何方's avatar
我在何方 committed
18
                <span>{{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.totalNum:0}}</span>
19
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
20
            <el-descriptions-item :label="$t('订单状态')">
我在何方's avatar
我在何方 committed
21
              <!-- <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" /> -->
我在何方's avatar
我在何方 committed
22
              {{orderData.abnormalState!=0?$t('异常'):$t('正常')}}
23
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
24 25
            <el-descriptions-item :label="$t('送货日期')">
              {{orderData.deliveryDate||$t('')}}
26
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
27
          <el-descriptions-item :label="$t('运输方式')">
28 29
              <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
          </el-descriptions-item>
我在何方's avatar
我在何方 committed
30 31
          <el-descriptions-item :label="$t('始发地')" >
               {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:$t('')}}
32
          </el-descriptions-item>
我在何方's avatar
我在何方 committed
33 34
          <el-descriptions-item :label="$t('目的地')" :span="2">
             {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destTitleZh:$t('')}}
35
          </el-descriptions-item>
我在何方's avatar
我在何方 committed
36 37
          <el-descriptions-item :label="$t('发货人姓名')">
              {{orderData.consignorVO?orderData.consignorVO.name||$t(''):$t('')}}
38
          </el-descriptions-item>
我在何方's avatar
我在何方 committed
39 40
          <el-descriptions-item :label="$t('发货公司')">
              {{orderData.consignorVO?orderData.consignorVO.company||$t(''):$t('')}}
41
          </el-descriptions-item>
我在何方's avatar
我在何方 committed
42
          <el-descriptions-item :label="$t('发货电话')">
我在何方's avatar
我在何方 committed
43
                {{!orderData.consignorVO?$t(''):!orderData.consignorVO.phone?$t(''):(checkCode(orderData.consignorVO.countryCode)+orderData.consignorVO.phone)}}
44 45 46
          </el-descriptions-item>
        </el-descriptions>
        <el-descriptions :column="4">
我在何方's avatar
我在何方 committed
47 48
            <el-descriptions-item :label="$t('收货人姓名')">
                {{orderData.consigneeVO?orderData.consigneeVO.name||$t(''):$t('')}}
49
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
50 51
            <el-descriptions-item :label="$t('收货公司')">
                {{orderData.consigneeVO?orderData.consigneeVO.company||$t(''):$t('')}}
52
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
53
            <el-descriptions-item :label="$t('收货电话')">
我在何方's avatar
我在何方 committed
54
              {{!orderData.consigneeVO?$t(''):!orderData.consigneeVO.phone?$t(''):(checkCode(orderData.consigneeVO.countryCode)+orderData.consigneeVO.phone)}}
55 56 57 58 59 60
            </el-descriptions-item>
        </el-descriptions>

    </el-card>
    <el-card class="card">
      <!-- 列表 -->
我在何方's avatar
我在何方 committed
61
      <div slot="header" class="card-title">{{$t('货物信息')}}</div>
我在何方's avatar
我在何方 committed
62
      <el-table id='table' v-loading="loading"  border :data="orderData.orderItemVOList"  :summary-method="getSummaries" show-summary>
我在何方's avatar
我在何方 committed
63
        <el-table-column :label="$t('序号')" align="center" prop="id" type="index" width="60">
我在何方's avatar
我在何方 committed
64
          <template slot-scope="scope" >
65 66 67
              <span>{{scope.$index + 1}}</span>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
68
        <el-table-column :label="$t('品名')" align="center">
69 70 71 72 73
          <template slot-scope="scope">
             <el-row>{{scope.row.prodTitleEn}}</el-row>
             <el-row>{{scope.row.prodTitleZh}}</el-row>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
74
        <el-table-column :label="$t('填单货物属性')" align="center" width="200">
75 76
            <template slot-scope="scope">
              <el-row>
我在何方's avatar
我在何方 committed
77
                <span>{{$t('品牌')}}
78 79 80 81
                  <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType" />
                </span>
              </el-row>
              <el-row>
我在何方's avatar
我在何方 committed
82
                <span>{{$t('箱数')}}{{scope.row.num||$t('未填')}}</span>
83 84
              </el-row>
              <el-row>
我在何方's avatar
我在何方 committed
85
                <span>{{$t('体积')}}{{scope.row.volume||$t('未填')}}</span>
86 87
              </el-row>
              <el-row>
我在何方's avatar
我在何方 committed
88
                <span>{{$t('重量')}}{{scope.row.weight||$t('未填')}}kg</span>
89 90 91
              </el-row>
            </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
92
        <el-table-column :label="$t('入库货物属性')" align="center" width="400">
93
            <template slot-scope="scope">
我在何方's avatar
我在何方 committed
94
              <el-row v-if="scope.row.warehouseInInfoVO">
我在何方's avatar
我在何方 committed
95
                <span>{{$t('规格')}}{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.boxGauge:0}}</span>
96
              </el-row>
我在何方's avatar
我在何方 committed
97
              <el-row v-if="scope.row.warehouseInInfoVO">
我在何方's avatar
我在何方 committed
98
                <span>{{$t('品牌')}}
我在何方's avatar
我在何方 committed
99
                  <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.feeType" />
100
                </span>
我在何方's avatar
我在何方 committed
101 102 103
                <span style="margin-left: 10px;">{{$t('箱数')}}{{!scope.row.warehouseInInfoVO?0:scope.row.warehouseInInfoVO.cartonsNum}}</span>
                <span style="margin-left: 10px;">{{$t('体积')}}{{!scope.row.warehouseInInfoVO?0:scope.row.warehouseInInfoVO.volume}}</span>
                <span style="margin-left: 10px;">{{$t('重量')}}{{!scope.row.warehouseInInfoVO?0:scope.row.warehouseInInfoVO.weight}}kg</span>
104
              </el-row>
我在何方's avatar
我在何方 committed
105 106 107
              <el-row v-if="!scope.row.warehouseInInfoVO">
                <span>{{$t('暂时没有入仓信息')}}</span>
              </el-row>
108 109
            </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
110
        <el-table-column :label="$t('最后操作时间')" align="center">
我在何方's avatar
我在何方 committed
111 112 113 114
        <template slot-scope="scope">
                <span>{{parseTime(scope.row.updateTime)}}</span>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
115
        <el-table-column :label="$t('状态')" align="center">
116
           <template slot-scope="scope">
我在何方's avatar
我在何方 committed
117 118
             <!-- {{orderData.abnormalState!=0?$t('异常'):$t('正常')}} -->
               <dict-tag :type="DICT_TYPE.ORDER_ITEM_STATUS" :value="scope.row.itemStatus" />
119 120 121 122 123 124
          </template>
        </el-table-column>
      </el-table>
    </el-card>
    <el-card class="card" v-if="splitData.length>0">
      <!-- 列表 -->
我在何方's avatar
我在何方 committed
125
      <div slot="header" class="card-title">{{$t('拆单信息')}}</div>
126 127 128
      <div v-for="(item, index) in splitData" :key="index">
        <div class="btn-header">
          <div>
我在何方's avatar
我在何方 committed
129 130 131 132 133
            <p class="card-info">
              <span class="card-title">
              {{item.orderNo}}
              </span>
              <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item.transportId" />
我在何方's avatar
我在何方 committed
134
              <span>{{$t('发往')}}:{{importCityName(item.dstWarehouseId)}}</span>
我在何方's avatar
我在何方 committed
135
            </p>
136 137
          </div>
          <div>
我在何方's avatar
我在何方 committed
138
             <el-button v-if="index==0" disabled type="primary" @click="addShop(index)">{{$t('放入')}}</el-button>
我在何方's avatar
我在何方 committed
139
               <el-button v-if="index!=0" type="primary" @click="addShop(index)">{{$t('放入')}}</el-button>
我在何方's avatar
我在何方 committed
140 141
              <el-button v-if="index==0" disabled type="primary" plain @click="deleteSplit(item.id)">{{$t('删除')}}</el-button>
              <el-button v-if="index!=0" type="primary" plain @click="deleteSplit(item.id)">{{$t('删除')}}</el-button>
142 143
          </div>
        </div>
我在何方's avatar
我在何方 committed
144
        <el-table v-if="item.orderSplitItemBackVOList"  border :data="item.orderSplitItemBackVOList">
我在何方's avatar
我在何方 committed
145
          <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
146 147 148 149
            <template slot-scope="scope">
                <span>{{scope.$index + 1}}</span>
            </template>
          </el-table-column>
我在何方's avatar
我在何方 committed
150 151 152
          <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">
153 154 155 156
            <template slot-scope="scope">
              <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType" />
            </template>
          </el-table-column>
我在何方's avatar
我在何方 committed
157
          <el-table-column :label="$t('体积')" align="center" >
158 159 160 161
            <template slot-scope="scope">
                 <span>{{scope.row.volume}}</span>
              </template>
          </el-table-column>
我在何方's avatar
我在何方 committed
162
          <el-table-column :label="$t('重量')" align="center">
163
            <template slot-scope="scope">
164
                   <span>{{scope.row.weight}}kg</span>
165 166
                </template>
            </el-table-column>
我在何方's avatar
我在何方 committed
167
          <el-table-column :label="$t('箱数')" align="center">
168
            <template slot-scope="scope">
我在何方's avatar
我在何方 committed
169
                   <span>{{scope.row.num}}</span>
170 171
                </template>
            </el-table-column>
我在何方's avatar
我在何方 committed
172
            <el-table-column :label="$t('操作')" align="center">
173
              <template slot-scope="scope">
我在何方's avatar
我在何方 committed
174 175
                <el-button v-if="index==0" disabled size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">{{$t('移出')}}</el-button>
               <el-button v-else size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">{{$t('移出')}}</el-button>
176 177 178 179 180
              </template>
            </el-table-column>
        </el-table>
      </div>
    </el-card>
我在何方's avatar
我在何方 committed
181
    <work-flow xmlkey="split_order" v-model="selectedUsers"></work-flow>
我在何方's avatar
我在何方 committed
182 183 184
    <div slot="footer" class="card footer_btn" v-if="orderData.abnormalState==0">
        <el-button  v-if="orderData.inWarehouseState!=207" type="primary" @click="submitForm">{{$t('提交申请')}}</el-button>
        <el-button v-if="orderData.inWarehouseState!=207" plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('取消')}}</el-button>
185
        <el-button v-if="orderData.inWarehouseState==207" type="primary" @click="$router.push(`/bpm/process-instance/detail?id=`+orderApprovalBackVO.applyingFormId)">{{$t('审核中')}}</el-button>
我在何方's avatar
我在何方 committed
186 187
        <el-button v-if="orderData.inWarehouseState==207" plain type="primary" @click="dialogVisible = true">{{$t('取消审核')}}</el-button>
        <el-button v-if="orderData.inWarehouseState==207" plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
188 189
    </div>
     <!-- 对话框(添加 / 修改) -->
我在何方's avatar
我在何方 committed
190
        <el-dialog :title="$t('新建拆单')" :visible.sync="open" width="400px" append-to-body>
我在何方's avatar
我在何方 committed
191
          <el-form ref="formSplit" :model="form" :rules="rules" label-width="80px">
我在何方's avatar
我在何方 committed
192 193
              <el-form-item :label="$t('运输方式')">
                 <dict-selector :clearable="true" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" @change="changeTransport" v-model="form.transportId" />
194
              </el-form-item>
我在何方's avatar
我在何方 committed
195 196 197
              <el-form-item :label="$t('出货渠道')" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'">
                <el-select v-model="form.channelId" :placeholder="$t('请选择出货渠道')" :clearable="true">
                     <el-option :disabled="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'" v-for="item in channelData" :key="item.channelId" :label="$l(item, 'name')" :value="item.channelId"/>
198 199
                 </el-select>
              </el-form-item>
我在何方's avatar
我在何方 committed
200 201 202 203 204 205

              <el-form-item :label="$t('目的仓库')" >
                  <el-select v-model="form.destWarehouseId" @change="changeDeatWarehouseId" :placeholder="$t('请选择目的仓库')" :clearable="true">
                   <el-option v-for="items in importCityList" :label="$l(items, 'title')" :value="items.id" :key="items.id" ></el-option>
                  </el-select>
              </el-form-item>
206 207 208
          </el-form>

          <div slot="footer" class="dialog-footer">
我在何方's avatar
我在何方 committed
209 210
            <el-button type="primary" @click="haddleAdd">{{$t('确定')}}</el-button>
            <el-button @click="cancel">{{$t('取消')}}</el-button>
211 212 213
          </div>
        </el-dialog>
        <!-- 对话框(添加 / 修改) -->
214 215
           <el-dialog :title="$t('放入品名')" :visible.sync="shopOpen" width="500px" append-to-body>
             <el-form ref="shopForm" :model="shopForm" :rules="shopRules" label-width="120px">
216
               <el-row>
我在何方's avatar
我在何方 committed
217
                <el-form-item :label="$t('中文品名')+':'" v-if="splitData.length>0">
218 219
                   <el-select v-model="shopForm.pordid" :placeholder="$t('请选择中文品名')"  @change="changeProdTitleZh" clearable>
                    <el-option v-for="item in splitData[0].orderSplitItemBackVOList" :label="item.prodTitleZh" :value="item.id" :key="item.prodTitleZh" ></el-option>
220 221 222 223
                   </el-select>
                 </el-form-item>
               </el-row>
               <el-row>
我在何方's avatar
我在何方 committed
224
                <el-form-item :label="$t('英文品名')+':'" v-if="splitData.length>0">
225 226
                     <el-select v-model="shopForm.pordid" :placeholder="$t('请选择英文品名')"  @change="changeProdTitleZh" clearable>
                      <el-option v-for="item in splitData[0].orderSplitItemBackVOList" :label="item.prodTitleEn" :value="item.id" :key="item.prodTitleEn" ></el-option>
227 228
                     </el-select>
                 </el-form-item>
我在何方's avatar
我在何方 committed
229
                 <el-form-item :label="$t('剩余箱数')+':'">
230 231
                    {{shopForm.sum||0}}
                 </el-form-item>
我在何方's avatar
我在何方 committed
232
                 <el-form-item :label="$t('放入箱数')+':'">
233 234 235 236
                    <el-input-number v-model="shopForm.num" @change="numChange" controls-position="right"  :min="1" :max="shopForm.sum"></el-input-number>
                 </el-form-item>
                 <el-form-item v-if="quantityshow" :label="$t('放入数量')+'('+$t('个')+')'+':'">
                    <el-input-number v-model="shopForm.quantity" controls-position="right"  :min="1" :max="quantitySum"></el-input-number>
237
                 </el-form-item>
我在何方's avatar
我在何方 committed
238
                 <el-form-item :label="$t('备注信息')+':'">
239
                    <el-input v-model="shopForm.remark"></el-input>
240 241 242 243
                 </el-form-item>
               </el-row>
             </el-form>
             <div slot="footer" class="dialog-footer">
我在何方's avatar
我在何方 committed
244 245
               <el-button type="primary" @click="shopAdd">{{$t('确定')}}</el-button>
               <el-button @click="shopCancel">{{$t('取消')}}</el-button>
246 247
             </div>
           </el-dialog>
我在何方's avatar
我在何方 committed
248
           <el-dialog
我在何方's avatar
我在何方 committed
249
             :title="$t('提示')"
我在何方's avatar
我在何方 committed
250 251
             :visible.sync="dialogVisible"
             width="30%">
我在何方's avatar
我在何方 committed
252
             <span class="cancel_notice">{{$t('拆单申请正在审核中,你确定取消拆单申请吗?')}}</span>
我在何方's avatar
我在何方 committed
253
             <div class="cancel_content">
我在何方's avatar
我在何方 committed
254 255
               <span>{{$t('取消原因:')}}</span>
               <el-input v-model="reason" :placeholder="$t('请输入取消原因')"></el-input>
我在何方's avatar
我在何方 committed
256 257 258
             </div>

             <span slot="footer" class="dialog-footer">
我在何方's avatar
我在何方 committed
259 260
               <el-button @click="dialogVisible = false">{{$t('取消')}}</el-button>
               <el-button type="primary" @click="cancelSplit">{{$t('确定')}}</el-button>
我在何方's avatar
我在何方 committed
261 262
             </span>
           </el-dialog>
263 264 265 266
  </div>
</template>

<script>
我在何方's avatar
我在何方 committed
267
import {getDictData, getDictDatas,DICT_TYPE} from '@/utils/dict'
268
import {getSplitList,splitApply,createSplit,cancelApply,createSplitItem,deleteSplitItem,deleteSplit,quantitycheck} from "@/api/ecw/orderHandle"
我在何方's avatar
我在何方 committed
269
import {getWarehouseList} from '@/api/ecw/warehouse'
我在何方's avatar
我在何方 committed
270 271 272 273
import {getChannelList} from '@/api/ecw/channel'
import WorkFlow from '@/components/WorkFlow'
import {getOrder} from '@/api/ecw/order'

274 275 276 277

export default {
  name: "SplitApply",
  components: {
我在何方's avatar
我在何方 committed
278
    WorkFlow
279 280 281 282
  },
  data() {
    return {
      checked:false,
我在何方's avatar
我在何方 committed
283 284
      reason:'',
      dialogVisible:false,
285 286
      orderData:{},
      splitData:[],
我在何方's avatar
我在何方 committed
287
      orderApprovalBackVO:{},
288 289 290 291 292 293 294 295 296
      splitIndex:0,
      channelData:[],
      tradeCityList:[],
      multipleSelection:[],
      loading:false,
      open:false,
      form:{

      },
我在何方's avatar
我在何方 committed
297
      importCityList:[],
我在何方's avatar
我在何方 committed
298 299
      selectedUsers:[],
      shopOpen:false,
300
      quantityshow:false,
301 302 303
      shopForm:{},
      // 表单校验
      rules: {
我在何方's avatar
我在何方 committed
304 305 306
        transportId: [{ required: true, message: this.$t("请选择运输方式"), trigger: "change" }],
        warehouseIds: [{ required: true, message: this.$t("请选择目的仓库"), trigger: "change" }],
        channelId: [{ required: true, message: this.$t("请选择出货渠道"), trigger: "change" }],
307 308 309
      },
      // 表单校验
      shopRules: {
我在何方's avatar
我在何方 committed
310 311
        prodTitleZh: [{ required: true, message: this.$t("请选择中文品名"), trigger: "change" }],
        prodTitleEn: [{ required: true, message: this.$t("请选择英文品名"), trigger: "change" }],
我在何方's avatar
我在何方 committed
312 313
      },
      queryParams:{
我在何方's avatar
我在何方 committed
314
        orderId:7,
我在何方's avatar
我在何方 committed
315
        lang:0
316 317
      },
      query:{
我在何方's avatar
我在何方 committed
318 319 320
        page:1,
        rows:20
      },
321 322
      splitItemIndex:0,
      quantitySum:0
323 324 325
    };
  },
  created() {
我在何方's avatar
我在何方 committed
326
    this.getChannel()
我在何方's avatar
我在何方 committed
327 328 329 330
    getWarehouseList().then(res => {
      this.tradeCityList = res.data
      this.importCityList = this.tradeCityList.filter(item => item.type == 1)
    })
我在何方's avatar
我在何方 committed
331
    if (this.$route.query.orderId) {
我在何方's avatar
我在何方 committed
332
      this.queryParams.orderId = this.$route.query.orderId
我在何方's avatar
我在何方 committed
333
    }
我在何方's avatar
我在何方 committed
334 335
    this.getList()
    this.getOrder()
336
  },
我在何方's avatar
我在何方 committed
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
  watch: {
  //监听table这个对象
      tableData: {
        // 立即监听
        immediate: true,
        handler() {
          this.$nextTick(() => {
            const tds = document.querySelectorAll(
              "#table .el-table__footer-wrapper tr>td"
            );
            // colSpan合并列
            tds[1].colSpan = 5;
            tds[1].style.textAlign = "left";
            tds[2].style.display = "none";
            tds[3].style.display = "none";
            tds[4].style.display = "none";
            tds[5].style.display = "none";
          });
        },
      },
    },
358
  computed:{
我在何方's avatar
我在何方 committed
359 360 361 362 363
    getDictData(){
        return (type, value) => getDictData(type, value) || {}
    },
    getDictDatas(){
        return getDictDatas
364 365 366
    }
  },
  methods: {
我在何方's avatar
我在何方 committed
367 368 369 370 371 372
    checkCode(data){
      if(data.indexOf('+')==-1){
      	return '+'+data
      }
      return data
    },
我在何方's avatar
我在何方 committed
373 374 375 376 377 378 379 380 381 382
    changeTransport(e){
      this.$set(this.form,'transportId',e)
      console.log(this.form.transportId)
      this.$forceUpdate()
    },
    changeDeatWarehouseId(e){
      this.$forceUpdate()
      this.$set(this.form,'destWarehouseId',e)
      console.log(this.form.destWarehouseId)
    },
我在何方's avatar
我在何方 committed
383 384 385
    getOrder(){
      this.loading = true;
      getOrder(this.queryParams.orderId).then(response => {
我在何方's avatar
我在何方 committed
386
        this.orderData = response.data
我在何方's avatar
我在何方 committed
387 388 389 390 391
        this.query.destWarehouseId = response.data.logisticsInfoDto.startWarehouseId
        this.loading = false

      });
    },
392 393 394 395
    /** 查询列表 */
    getList() {
      this.loading = true;
      // 执行查询
我在何方's avatar
我在何方 committed
396
      getSplitList(this.queryParams).then(response => {
我在何方's avatar
我在何方 committed
397

我在何方's avatar
我在何方 committed
398
        this.splitData = response.data.orderSplitBackVOList
我在何方's avatar
我在何方 committed
399 400
        this.orderApprovalBackVO = response.data

我在何方's avatar
我在何方 committed
401

402 403 404 405
        this.loading = false;
      });
    },
    getChannel(){
我在何方's avatar
我在何方 committed
406
      getChannelList().then(res=>this.channelData = res.data)
407 408 409
    },
    changeDest(){
      this.query.warehouseIds = this.form.destWarehouseId
我在何方's avatar
我在何方 committed
410 411 412 413 414 415 416 417 418
    },
    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
      if (rowIndex==this.orderData.orderItemVOList.length) {
        if (columnIndex === 1) {
          return [2, 3];
        } else if (columnIndex > 1) {
          return [0, 0];
        }
      }
419 420 421
    },
    getSummaries(){
      const sums = [];
我在何方's avatar
我在何方 committed
422

我在何方's avatar
我在何方 committed
423
      sums[0] = this.$t('小计')
我在何方's avatar
我在何方 committed
424
      if(!this.orderData || !this.orderData.orderItemVOList ||this.orderData.length==0){
425 426 427 428 429 430 431 432
        return sums
      }
      var orderSum = 0
      var orderV = 0
      var orderW = 0
      var leviteSum = 0
      var leviteV = 0
      var leviteW = 0
我在何方's avatar
我在何方 committed
433 434
      this.orderData.orderItemVOList.forEach((column, index) => {
          orderSum += column.num
435 436
          orderV += column.volume
          orderW += column.weight
我在何方's avatar
我在何方 committed
437 438 439
          leviteSum += column.warehouseInInfoVO?column.warehouseInInfoVO.cartonsNum:0
          leviteV += column.warehouseInInfoVO?column.warehouseInInfoVO.volume:0
          leviteW += column.warehouseInInfoVO?column.warehouseInInfoVO.weight:0
440
      });
我在何方's avatar
我在何方 committed
441
      sums[1] = this.$t('下单统计')+' '+ orderSum+' '+this.$t('')+' '+ orderV.toFixed(2) +'' + orderW + ' kg ' + ' '+this.$t('入仓统计:')+ leviteSum+' '+this.$t('')+' '+ leviteV.toFixed(2) +'' + leviteW + ' kg'
我在何方's avatar
我在何方 committed
442

443 444
      return sums;
    },
我在何方's avatar
我在何方 committed
445

446 447
    importCityName(id){
        var arr = this.tradeCityList.filter(item => item.id == id)
我在何方's avatar
我在何方 committed
448
        return arr.length>0?arr[0].titleZh:this.$t('')
449 450
    },
    submitForm(){
我在何方's avatar
我在何方 committed
451
      if(this.splitData.length==0){
我在何方's avatar
我在何方 committed
452
         this.$modal.msgError(this.$t("请先新建拆单"))
我在何方's avatar
我在何方 committed
453 454 455 456 457 458
         return
      }
      // if(this.selectedUsers.length==0){
      //    this.$modal.msgError("请选择抄送人")
      //    return
      // }
我在何方's avatar
我在何方 committed
459 460 461 462 463
      var params = {
        orderId:this.queryParams.orderId,
        copyUserId:this.selectedUsers
      }
      splitApply(params).then(res=>{
我在何方's avatar
我在何方 committed
464
        this.$modal.msgSuccess(this.$t("申请成功"));
我在何方's avatar
我在何方 committed
465
        this.$store.dispatch('tagsView/delCurrentView')
我在何方's avatar
我在何方 committed
466
      })
467 468
    },
    addShop(index){
我在何方's avatar
我在何方 committed
469
      this.splitItemIndex = index
470
      this.shopOpen = true
471

472 473
    },
    addSplit(){
我在何方's avatar
我在何方 committed
474 475 476 477 478 479 480 481
      this.form.transportId = this.orderData.transportId
      this.form.destWarehouseId = this.orderData.destWarehouseId
      if(this.orderData.logisticsInfoDto&&this.orderData.logisticsInfoDto.destTitleZh){
        this.form.destWarehouseId = this.importCityList.find(item=>item.titleZh==this.orderData.logisticsInfoDto.destTitleZh).id
        if(this.orderData.logisticsInfoDto&&this.orderData.logisticsInfoDto.channelId){
          this.form.channelId = this.orderData.logisticsInfoDto.channelId
          }
      }
482 483
      this.open = true
    },
484
    changeProdTitleZh(val){
485
        var list = []
486
        list = this.splitData[0].orderSplitItemBackVOList.filter(item=>item.id == val)
我在何方's avatar
我在何方 committed
487
        this.shopForm.sum = list[0].num
488
        this.quantitySum = list[0].quantity
我在何方's avatar
我在何方 committed
489
        this.shopForm.orderItemId = list[0].orderItemId
490
        this.shopForm.prodTitleEn = list[0].prodTitleEn
491
        this.shopForm.prodTitleZh = list[0].prodTitleZh
492
        var orderItemData = this.orderData.orderItemVOList.find(item=>item.orderItemId==this.shopForm.orderItemId)
493
        var params = {
494 495
          'seaFreightVolume':orderItemData.seaFreightVolume,
          'clearanceFreightVolume':orderItemData.clearanceFreightVolume
496
        }
497
        console.log(orderItemData)
498 499 500 501 502 503 504 505 506 507
        this.numcheck(params)
    },
    numcheck(params){
      quantitycheck(params).then(res=>{
        this.quantityshow = res.data
      })
    },
    numChange(){
      var sum =  parseInt(this.quantitySum/this.shopForm.num)
      this.$set(this.shopForm,'quantity',sum)
508 509 510
    },
    changeProdTitleEn(){
        var list = []
我在何方's avatar
我在何方 committed
511
        list = this.splitData[0].orderSplitItemBackVOList.filter(item=>item.prodTitleEn == this.shopForm.prodTitleEn)
我在何方's avatar
我在何方 committed
512
        this.shopForm.sum = list[0].num
513
        this.quantitySum = list[0].quantity
514 515 516
        this.shopForm.prodTitleZh = list[0].prodTitleZh
    },
    haddleAdd(){
我在何方's avatar
我在何方 committed
517 518
      let that = this
      if(!that.form.transportId){
我在何方's avatar
我在何方 committed
519
        that.$message.error(this.$t("请选择运输方式"));
我在何方's avatar
我在何方 committed
520
        return
521
      }
我在何方's avatar
我在何方 committed
522
      if(!that.form.destWarehouseId){
我在何方's avatar
我在何方 committed
523
        that.$message.error(this.$t("请选择目的仓库"));
我在何方's avatar
我在何方 committed
524
        return
我在何方's avatar
我在何方 committed
525 526 527 528 529 530 531 532
      }
      // if(!this.form.channelId){
      //   this.$modal.msgError("请选择出货渠道");
      // }
      var params = {
          dstWarehouseId: that.form.destWarehouseId,
          parentOrderId: that.orderData.orderId,
          parentOrderNo: that.orderData.orderNo,
我在何方's avatar
我在何方 committed
533 534
          transportId: that.form.transportId,
          channelId:that.form.channelId
我在何方's avatar
我在何方 committed
535 536 537 538 539
      }
      createSplit(params).then(res=>{
        that.getList()
      })
      that.open = false
540 541 542 543 544 545 546 547 548 549 550
    },
    cancel(){
      this.open = false
      this.form = {}
    },
    shopAdd(){
      this.$refs["shopForm"].validate(valid => {
        if (!valid) {
          return;
        }
      })
我在何方's avatar
我在何方 committed
551 552 553 554
      var params = {
        num:this.shopForm.num,
        orderItemId:this.shopForm.orderItemId,
        orderSplitId:this.splitData[this.splitItemIndex].id,
555
        remark:this.shopForm.remark
556
      }
我在何方's avatar
我在何方 committed
557
      createSplitItem(params).then(res=>{
我在何方's avatar
我在何方 committed
558
        this.$message.success(this.$t("放入成功"));
我在何方's avatar
我在何方 committed
559 560 561
        this.getList()
        this.shopForm = {}
      })
562 563
      this.shopOpen = false
    },
我在何方's avatar
我在何方 committed
564 565
    removeShop(id){
      let that = this
我在何方's avatar
我在何方 committed
566
      that.$confirm(that.$t('是否移除货物吗?')).then(function () {
我在何方's avatar
我在何方 committed
567
        deleteSplitItem(id).then(res=>{
我在何方's avatar
我在何方 committed
568
          that.$message.success(that.$t("移除成功"));
我在何方's avatar
我在何方 committed
569 570 571 572 573 574
           that.getList()
        })
      })
    },
    cancelSplit(){
      let that = this
我在何方's avatar
我在何方 committed
575
      if(!that.reason){
我在何方's avatar
我在何方 committed
576
        that.$message.error(that.$t("请输入取消原因"));
我在何方's avatar
我在何方 committed
577 578 579
        return
      }
        cancelApply({orderId:that.queryParams.orderId,reason:that.reason}).then(res=>{
我在何方's avatar
我在何方 committed
580
          that.$message.success(that.$t("取消成功"));
我在何方's avatar
我在何方 committed
581
          that.$store.dispatch('tagsView/delCurrentView')
我在何方's avatar
我在何方 committed
582
        })
583 584 585 586 587 588
    },
    shopCancel(){
      this.shopOpen = false
      this.shopForm = {}
    },
    /** 删除按钮操作 */
我在何方's avatar
我在何方 committed
589 590
    deleteSplit(id) {
      let that = this
我在何方's avatar
我在何方 committed
591
      that.$confirm(that.$t('是否确认删除新拆的订单吗?')).then(function () {
我在何方's avatar
我在何方 committed
592
        deleteSplit(id).then(res=>{
我在何方's avatar
我在何方 committed
593
          that.$message.success(that.$t("删除成功"));
我在何方's avatar
我在何方 committed
594 595 596
           that.getList()
        })
      })
597 598 599 600
    },
  }
}
</script>
我在何方's avatar
我在何方 committed
601
<style scoped>
602 603 604 605 606
  .card-title{
      font-size: 18px;
      font-weight: bold;
       margin-top: 10px;
  }
我在何方's avatar
我在何方 committed
607 608 609
  .card-info{
    font-size: 16px;
  }
610 611 612 613
  .card{
    margin-top: 20px;
  }
  .btn-header{
我在何方's avatar
我在何方 committed
614
    width: 90%;
615 616 617 618 619 620 621 622 623
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 20px 0;
  }
  .red{
    color:#ff3430;
    font-size: 15px;
  }
我在何方's avatar
我在何方 committed
624 625 626
  .footer_btn{
    padding-bottom: 60px;
  }
我在何方's avatar
我在何方 committed
627 628 629 630 631 632 633 634 635 636 637 638
  .cancel_notice{
    font-size: 16px;
    font-weight: 600;
  }
  .cancel_content{
    display: flex;
    align-items: center;
    padding-top: 20px;
  }
  .cancel_content span{
    width: 100px;
  }
639
</style>