singleApply.vue 12.3 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
        <el-descriptions :column="4">
我在何方's avatar
我在何方 committed
7 8
            <el-descriptions-item :label="$t('唛头')">
                {{orderData.marks||$t('')}}
9
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
10
            <el-descriptions-item :label="$t('已到箱数/总箱数')">
我在何方's avatar
我在何方 committed
11
                <span>{{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.totalNum:0}}</span>
12
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
13
            <el-descriptions-item :label="$t('订单状态')">
我在何方's avatar
我在何方 committed
14
              <!-- <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" /> -->
我在何方's avatar
我在何方 committed
15
              {{orderData.abnormalState!=0?$t('异常'):$t('正常')}}
16
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
17 18
            <el-descriptions-item :label="$t('送货日期')">
             {{orderData.deliveryDate||$t('')}}
19
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
20

我在何方's avatar
我在何方 committed
21
            <el-descriptions-item :label="$t('运输方式')">
22 23
                <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
24
            <el-descriptions-item :label="$t('出货渠道')">
我在何方's avatar
我在何方 committed
25
                  {{orderData.channelId?getChannelName(orderData.channelId):'/'}}
26
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
27 28
            <el-descriptions-item :label="$t('始发地')" :span="2">
                  {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startAddressZh:$t('')}}
29
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
30 31
            <el-descriptions-item :label="$t('目的地')">
               {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destAddressZh:$t('')}}
32
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
33 34
            <el-descriptions-item :label="$t('发货人姓名')">
                {{orderData.consignorVO?orderData.consignorVO.name||$t(''):$t('')}}
35
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
36 37
            <el-descriptions-item :label="$t('发货公司')">
                {{orderData.consignorVO?orderData.consignorVO.company||$t(''):$t('')}}
38
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
39 40
            <el-descriptions-item :label="$t('发货电话')">
                  {{!orderData.consignorVO?$t(''):!orderData.consignorVO.phone?$t(''):(orderData.consignorVO.countryCode+orderData.consignorVO.phone)}}
41 42 43
            </el-descriptions-item>
        </el-descriptions>
        <el-descriptions :column="4">
我在何方's avatar
我在何方 committed
44 45
            <el-descriptions-item :label="$t('收货人姓名')">
                {{orderData.consigneeVO?orderData.consigneeVO.name||$t(''):$t('')}}
46
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
47 48
            <el-descriptions-item :label="$t('收货公司')">
                {{orderData.consigneeVO?orderData.consigneeVO.company||$t(''):$t('')}}
49
            </el-descriptions-item>
我在何方's avatar
我在何方 committed
50 51
            <el-descriptions-item :label="$t('收货电话')">
                 {{!orderData.consigneeVO?$t(''):!orderData.consigneeVO.phone?$t(''):(orderData.consigneeVO.countryCode+orderData.consigneeVO.phone)}}
52 53 54 55 56 57
            </el-descriptions-item>
        </el-descriptions>

    </el-card>
    <el-card class="card">
      <!-- 列表 -->
我在何方's avatar
我在何方 committed
58
      <div slot="header" class="card-title">{{$t('已合单订单')}}</div>
我在何方's avatar
我在何方 committed
59
      <el-table v-loading="loading" border :data="mergedList" style="width: 200px;">
我在何方's avatar
我在何方 committed
60
        <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
61 62 63 64
          <template slot-scope="scope">
              <span>{{scope.$index + 1}}</span>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
65
        <el-table-column :label="$t('订单号')" align="center">
我在何方's avatar
我在何方 committed
66 67 68 69
        <template slot-scope="scope">
           <span>{{scope.row.mergedOrder.orderNo}}</span>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
70
<!--        <el-table-column :label="唛头" align="center">
我在何方's avatar
我在何方 committed
71 72 73 74
          <template slot-scope="scope">
           <span>{{scope.row.mergedOrder.marks}}</span>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
75
        <el-table-column :label="始发地" align="center">
76
            <template slot-scope="scope">
我在何方's avatar
我在何方 committed
77
              <span>{{importCityName(scope.row.mergedOrder.orderDepartureVO.departureId)}}</span>
78 79
            </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
80
        <el-table-column :label="入仓货物属性" align="center">
81 82
            <template slot-scope="scope">
              <span>合计:</span>
我在何方's avatar
我在何方 committed
83
              <span>{{scope.row.mergedOrder.sumNum+'箱 '+scope.row.mergedOrder.sumVolume+'m³ '+scope.row.mergedOrder.sumWeight+'kg'}}</span>
84 85
            </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
86 87
        <el-table-column :label="入仓时间" align="center" prop='createTime' />
        <el-table-column :label="状态" align="center">
88
           <template slot-scope="scope">
我在何方's avatar
我在何方 committed
89
               <dict-tag :type="DICT_TYPE.AUDIT_STATUS" :value="scope.row.status" />
90
          </template>
我在何方's avatar
我在何方 committed
91
        </el-table-column> -->
92 93 94 95
      </el-table>
    </el-card>
    <el-card class="card">
      <!-- 列表 -->
我在何方's avatar
我在何方 committed
96
      <div slot="header" class="card-title">{{$t('待合单订单')}}</div>
97 98 99
      <el-table  border :data="singleData" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55">
               </el-table-column>
我在何方's avatar
我在何方 committed
100
        <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
101 102 103 104
          <template slot-scope="scope">
              <span>{{scope.$index + 1}}</span>
          </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
105
        <el-table-column :label="$t('订单号')" align="center">
我在何方's avatar
我在何方 committed
106 107 108 109
        <template slot-scope="scope">
           <span>{{scope.row.orderNo}}</span>
          </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>{{scope.row.marks}}</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
              <span>{{scope.row.orderDepartureDO.departure}}</span>
118 119
            </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
120
        <el-table-column :label="$t('入仓货物属性')" align="center">
121
            <template slot-scope="scope">
我在何方's avatar
我在何方 committed
122 123
              <span>{{$t('合计')}}</span>
              <span>{{scope.row.sumNum+this.$t('')+' '+scope.row.sumVolume+''+scope.row.sumWeight+'kg'}}</span>
124 125
            </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
126
        <el-table-column :label="$t('入仓时间')" align="center">
我在何方's avatar
我在何方 committed
127 128 129 130
           <template slot-scope="scope">
            <span>{{parseTime(scope.row.rucangTime)}}</span>
           </template>
        </el-table-column>
我在何方's avatar
我在何方 committed
131
        <el-table-column :label="$t('状态')" align="center">
132
           <template slot-scope="scope">
我在何方's avatar
我在何方 committed
133
                {{scope.row.abnormalState!=0?$t('异常'):$t('正常')}}
134 135 136
          </template>
        </el-table-column>
      </el-table>
我在何方's avatar
我在何方 committed
137 138 139
      <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows"
        @pagination="getList" />
<!--      <el-row v-if="singleData.length>0">
140
           <el-checkbox v-model="checked">需要仓库打包</el-checkbox>
我在何方's avatar
我在何方 committed
141
      </el-row> -->
142
    </el-card>
我在何方's avatar
我在何方 committed
143 144
    <work-flow v-if='singleData.length>0' xmlkey="merge_order" v-model="selectedUsers"></work-flow>
    <div slot="footer" class="card footer_btn" v-if="singleData.length>0">
我在何方's avatar
我在何方 committed
145 146 147 148 149
        <el-button  v-if="orderData.inWarehouseState!=209" type="primary" @click="submitForm">{{$t('提交申请')}}</el-button>
        <el-button v-if="orderData.inWarehouseState!=209" plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('取消')}}</el-button>
        <el-button v-if="orderData.inWarehouseState==209"  type="primary" @click="$router.push(`/bpm/process-instance/detail?id=`+bpmProcessId)">{{$t('审核中')}}</el-button>
        <el-button v-if="orderData.inWarehouseState==209" plain type="primary" @click="dialogVisible = true">{{$t('取消审核')}}</el-button>
        <el-button v-if="orderData.inWarehouseState==209" plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
150
    </div>
我在何方's avatar
我在何方 committed
151
    <el-dialog
我在何方's avatar
我在何方 committed
152
     :title="$t('提示')"
我在何方's avatar
我在何方 committed
153 154
      :visible.sync="dialogVisible"
      width="30%">
我在何方's avatar
我在何方 committed
155
       <span class="cancel_notice">{{$t('合单申请正在审核中,你确定取消合单申请吗?')}}</span>
我在何方's avatar
我在何方 committed
156
       <div class="cancel_content">
我在何方's avatar
我在何方 committed
157 158
         <span>{{$t('取消原因')}}:</span>
         <el-input v-model="reason" :placeholder="$t('请输入取消原因')"></el-input>
我在何方's avatar
我在何方 committed
159 160
       </div>
      <span slot="footer" class="dialog-footer">
我在何方's avatar
我在何方 committed
161 162
        <el-button @click="dialogVisible = false">{{$t('取消')}}</el-button>
        <el-button type="primary" @click="cancelMerge">{{$t('确定')}}</el-button>
我在何方's avatar
我在何方 committed
163 164
      </span>
    </el-dialog>
165
  </div>
我在何方's avatar
我在何方 committed
166
</template>
167 168

<script>
我在何方's avatar
我在何方 committed
169
import {getMergeListByOrderNo,createMerge,cancelMerge} from "@/api/ecw/orderHandle"
170 171 172
import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from  '@/utils/dict'
import {getChannel} from '@/api/ecw/channel'
我在何方's avatar
我在何方 committed
173 174
import {getModel} from '@/api/bpm/model'
import WorkFlow from '@/components/WorkFlow/'
175 176 177 178

export default {
  name: "SingleApply",
  components: {
我在何方's avatar
我在何方 committed
179
    WorkFlow
180 181 182 183 184 185 186
  },
  data() {
    return {
      checked:false,
      orderData:{},
      // 订单异常列表
      list: [],
我在何方's avatar
我在何方 committed
187
      mergedList:[],
188 189
      singleData:[],
      tradeCityList:[],
我在何方's avatar
我在何方 committed
190 191
      loading:false,
      queryParams:{
我在何方's avatar
我在何方 committed
192
        mergedOrderNo:'NG2200006L',
我在何方's avatar
我在何方 committed
193 194 195 196 197
        page:1,
        rosw:10
      },
      selectedUsers:[],
      total:0,
我在何方's avatar
我在何方 committed
198
      orderNos:'',
我在何方's avatar
我在何方 committed
199
      bpmProcessId:'',
我在何方's avatar
我在何方 committed
200 201
      reason:'',
      dialogVisible:false
202 203 204
    };
  },
  created() {
我在何方's avatar
我在何方 committed
205
    if (this.$route.query.orderNo) {
206
      this.queryParams.mergedOrderNo = this.$route.query.orderNo
我在何方's avatar
我在何方 committed
207
    }
我在何方's avatar
我在何方 committed
208
    this.getList()
209 210 211 212 213 214 215
    getTradeCityList().then(res => this.tradeCityList = res.data)
  },
  methods: {
    /** 查询列表 */
    getList() {
      this.loading = true;
      // 执行查询
我在何方's avatar
我在何方 committed
216
      getMergeListByOrderNo(this.queryParams).then(response => {
217
        this.loading = false;
我在何方's avatar
我在何方 committed
218
        if(response.data.mergedList){
我在何方's avatar
我在何方 committed
219
          this.mergedList = response.data.mergedList;
我在何方's avatar
我在何方 committed
220 221 222 223 224 225 226 227
        }
        if(response.data.unMergeList){
          this.total = response.data.unMergeList.total;
          this.singleData = response.data.unMergeList.list;
        }
        if(response.data.orderInfo){
          this.orderData = response.data.orderInfo
        }
我在何方's avatar
我在何方 committed
228 229 230
        if(response.data.bpmProcessId){
          this.bpmProcessId = response.data.bpmProcessId
        }
231 232 233
      });
    },
    handleSelectionChange(val) {
我在何方's avatar
我在何方 committed
234 235
       var orderNo = []
       val.forEach((item)=>{
我在何方's avatar
我在何方 committed
236
         orderNo.push(item.orderNo)
我在何方's avatar
我在何方 committed
237
       })
我在何方's avatar
我在何方 committed
238
       this.orderNos = orderNo
239 240 241
     },
    importCityName(id){
        var arr = this.tradeCityList.filter(item => item.id == id)
我在何方's avatar
我在何方 committed
242
        return arr.length>0?arr[0].titleZh:this.$t('')
243
    },
我在何方's avatar
我在何方 committed
244 245 246 247 248 249 250
    getChannelName(id){
      getChannel(id).then(res=>{
        return  res.data.nameZh
      })
    },
    cancelMerge(){
      let that = this
我在何方's avatar
我在何方 committed
251 252 253 254 255
      // if(!that.orderNos){
      //   that.$message.error("请选择取消合单的订单");
      //   return
      // }
      if(!that.reason){
我在何方's avatar
我在何方 committed
256
        that.$message.error(this.$t("请输入取消原因"));
我在何方's avatar
我在何方 committed
257 258 259
        return
      }
      var  params = {
我在何方's avatar
我在何方 committed
260 261
        applyOrderNo :that.queryParams.mergedOrderNo,
        orderNo :that.queryParams.mergedOrderNo,
我在何方's avatar
我在何方 committed
262
        reason:that.reason
我在何方's avatar
我在何方 committed
263 264
      }
      cancelMerge(params).then(res=>{
我在何方's avatar
我在何方 committed
265
          that.$message.success(this.$t("取消成功"));
我在何方's avatar
我在何方 committed
266
           that.$store.dispatch('tagsView/delCurrentView')
267 268 269
      })
    },
    submitForm(){
我在何方's avatar
我在何方 committed
270 271
      let that = this
      if(!that.orderNos){
我在何方's avatar
我在何方 committed
272
        that.$message.error(this.$t("请选择待合单的订单"));
我在何方's avatar
我在何方 committed
273 274
        return
      }
我在何方's avatar
我在何方 committed
275 276 277
      var params = []
      that.orderNos.forEach((item)=>{
        var data = {
我在何方's avatar
我在何方 committed
278
          applyOrderNo:that.queryParams.mergedOrderNo,
我在何方's avatar
我在何方 committed
279
          copyUserId:that.selectedUsers,
我在何方's avatar
我在何方 committed
280
          orderNos:item,
我在何方's avatar
我在何方 committed
281 282
          status:1
        }
我在何方's avatar
我在何方 committed
283 284 285
        params.push(data)
      })
        createMerge(params).then(res=>{
我在何方's avatar
我在何方 committed
286
          that.$message.success(this.$t("修改成功"));
我在何方's avatar
我在何方 committed
287
          that.$store.dispatch('tagsView/delCurrentView')
我在何方's avatar
我在何方 committed
288
        })
289 290 291 292 293 294 295 296 297 298 299 300 301
    }
  }
}
</script>
<style>
  .card-title{
      font-size: 18px;
      font-weight: bold;
       margin-top: 10px;
  }
  .card{
    margin-top: 20px;
  }
我在何方's avatar
我在何方 committed
302 303 304
  .footer_btn{
    padding-bottom: 60px;
  }
我在何方's avatar
我在何方 committed
305 306 307 308 309 310 311 312 313 314 315 316
  .cancel_notice{
    font-size: 16px;
    font-weight: 600;
  }
  .cancel_content{
    display: flex;
    align-items: center;
    padding-top: 20px;
  }
  .cancel_content span{
    width: 100px;
  }
317
</style>