|
@@ -3,46 +3,70 @@
|
|
|
append-to-body
|
|
|
title="订单发货"
|
|
|
:visible.sync="drawer"
|
|
|
+ @close="close"
|
|
|
:direction="direction"
|
|
|
- size="40%">
|
|
|
+ size="50%">
|
|
|
<div class="content">
|
|
|
- <deliveryGoodsInfo />
|
|
|
+ <deliveryGoodsInfo :hideOrderCode="true" :sendState="true" ref="info" :readOnly="true" />
|
|
|
<div class="send-box">
|
|
|
<div class="pri-title">
|
|
|
- <div class="title-item">
|
|
|
+ <!-- <div class="title-item">
|
|
|
预计送达和预计费用<span>明细></span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<div class="title-item">
|
|
|
- 实际送达和实际费用<span>明细></span>
|
|
|
+ 实际送达和实际费用
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="send-type">
|
|
|
- <div class="send-item onSend">
|
|
|
- <div class="label-name">整车配送</div>
|
|
|
- <div class="send-info">
|
|
|
- <div class="s-time">7月23 12:23前</div>
|
|
|
- <div class="send-price">¥16.00起</div>
|
|
|
+ <el-popover
|
|
|
+ v-for="(item,index) of priceData" :key="index"
|
|
|
+ placement="top-start"
|
|
|
+ width="200"
|
|
|
+ trigger="hover">
|
|
|
+ <div class="price-info">
|
|
|
+ <div class="price-title">预估费用明细:</div>
|
|
|
+ <div class="price-row freight">
|
|
|
+ <span class="p-label">运费:</span>
|
|
|
+ <span class="p-value">¥{{item.estimateFreight}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="price-row">
|
|
|
+ <span class="p-label">单价:</span>
|
|
|
+ <span class="p-value">¥{{item.unitprice}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="price-row">
|
|
|
+ <span class="p-label">重量:</span>
|
|
|
+ <span class="p-value">{{item.weight}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="price-row">
|
|
|
+ <span class="p-label">体积:</span>
|
|
|
+ <span class="p-value">{{item.volume}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="price-row">
|
|
|
+ <span class="p-label">单位:</span>
|
|
|
+ <span class="p-value">{{item.unit}}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="send-item ont">
|
|
|
- <div class="label-name">整车配送</div>
|
|
|
- <div class="send-info">
|
|
|
- <div class="s-time">7月25 12:23前</div>
|
|
|
- <div class="send-price">¥26.00起</div>
|
|
|
+ <div slot="reference" class="send-item" :title="item.ruleName" :class="{'ont':value.priceId == item.id}" >
|
|
|
+ <div class="label-name">{{item.ruleName}}</div>
|
|
|
+ <div class="send-info">
|
|
|
+ <div class="s-time">{{item.endTime}}前</div>
|
|
|
+ <div class="send-price">¥{{item.estimateFreight}}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </el-popover>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="send-box">
|
|
|
<div class="s-row">
|
|
|
- <div class="s-col">WMS销售订单号:</div>
|
|
|
+ <div class="s-col">WMS销售订单号:{{ value.wmsSaleorderCode }}</div>
|
|
|
</div>
|
|
|
<div class="s-row">
|
|
|
- <div class="s-col width50">WMS订单类型:</div>
|
|
|
- <div class="s-col width50">WMS状态:</div>
|
|
|
+ <div class="s-col width50">WMS订单类型:{{ value.wmsSendType }}</div>
|
|
|
+ <div class="s-col width50">WMS状态:{{ getWmsState(value.wmsOrderStatus) }}</div>
|
|
|
</div>
|
|
|
<div class="s-row">
|
|
|
- <div class="s-col">WMS取消订单的备注:</div>
|
|
|
+ <div class="s-col">WMS取消订单的备注:{{ value.wmsRemark }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -52,18 +76,83 @@
|
|
|
<script lang="ts">
|
|
|
import { Component, Prop, Vue, Watch } from "vue-property-decorator";
|
|
|
import DeliveryGoodsInfo from "./deliveryGoodsInfo.vue";
|
|
|
-import DeliveryPrice from "./deliveryPrice.vue";
|
|
|
-@Component({components:{DeliveryGoodsInfo,DeliveryPrice}})
|
|
|
+import { queryOrderByOrderId } from '@/api/delivery'
|
|
|
+import { iteratee } from "lodash";
|
|
|
+@Component({components:{DeliveryGoodsInfo}})
|
|
|
export default class DeliveryDetail extends Vue {
|
|
|
drawer=false;
|
|
|
direction='rtl'
|
|
|
- checked=false;
|
|
|
+ load = false;
|
|
|
+ priceData:Array<any>=[];
|
|
|
+ value:any={};
|
|
|
+ wmsState='';
|
|
|
setShow(v:boolean){
|
|
|
this.drawer=v;
|
|
|
}
|
|
|
+ close(){
|
|
|
+ this.value={}
|
|
|
+ this.priceData=[];
|
|
|
+ }
|
|
|
btn(){
|
|
|
- this.drawer = false;
|
|
|
- this.$emit('sendHandle')
|
|
|
+
|
|
|
+ }
|
|
|
+ getWmsState(s:any){
|
|
|
+ let n = '';
|
|
|
+ switch(s){
|
|
|
+ case 1:
|
|
|
+ n = '创建';
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ n = '确认';
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ n = '完成';
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ n = '取消';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return n;
|
|
|
+ }
|
|
|
+ setData(v:any){
|
|
|
+ if(!v) {
|
|
|
+ this.$message('缺少订单id');
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.load = true;
|
|
|
+ queryOrderByOrderId({
|
|
|
+ omsOrderId:v
|
|
|
+ }).then((res:any) => {
|
|
|
+ this.value = res.data;
|
|
|
+ if(res.data.subItemList){
|
|
|
+ this.value.subItem=[];
|
|
|
+ for(const item of this.value.subItemList){
|
|
|
+ this.value.subItem.push({
|
|
|
+ tmsGoodsCode:item.tmsGoodsCode,
|
|
|
+ name:item.tmsGoodsName,
|
|
|
+ tmsGoodsTotalPrice:item.tmsGoodsTotalPrice,
|
|
|
+ price:item.tmsGoodsPrice,
|
|
|
+ weight:item.tmsWeight,
|
|
|
+ tmsQuantity:item.tmsQuantity
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.load = false;
|
|
|
+ if(res.data.pricePlan){
|
|
|
+ try{
|
|
|
+ this.priceData = JSON.parse(res.data.pricePlan);
|
|
|
+ }catch(e){
|
|
|
+ this.priceData = [];
|
|
|
+ console.error('价格列表数据转换错误!')
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(this.$refs.info){
|
|
|
+ (this.$refs.info as any).setValue(this.value)
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ this.load = false;
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -77,6 +166,7 @@ export default class DeliveryDetail extends Vue {
|
|
|
width: 100%;
|
|
|
box-sizing: border-box;
|
|
|
padding: 16px;
|
|
|
+ padding-bottom: 0;
|
|
|
margin-bottom: 16px;
|
|
|
background-color: rgba(255, 226, 160, 0.3);
|
|
|
.pri-title{
|
|
@@ -97,14 +187,16 @@ export default class DeliveryDetail extends Vue {
|
|
|
width: 100%;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ flex-wrap:wrap;
|
|
|
.send-item{
|
|
|
- width: 156px;
|
|
|
+ width: 165px;
|
|
|
box-sizing: border-box;
|
|
|
border:solid 3px #999;
|
|
|
border-radius: 6px;
|
|
|
overflow: hidden;
|
|
|
margin-right: 32px;
|
|
|
- cursor: pointer;
|
|
|
+ margin-bottom: 16px;
|
|
|
+ // cursor: pointer;
|
|
|
.label-name{
|
|
|
background-color: #999;
|
|
|
color: #FFF;
|
|
@@ -154,7 +246,7 @@ export default class DeliveryDetail extends Vue {
|
|
|
}
|
|
|
}
|
|
|
.s-row:last-child{
|
|
|
- padding: 0;
|
|
|
+ padding: 16;
|
|
|
}
|
|
|
}
|
|
|
}
|