Commit e61df18b by 黑潮

fix: 修复bug

parent f4f1f42a
......@@ -34,10 +34,10 @@ export default {
this.visible = true;
},
methods: {
handleConfirm() {
async handleConfirm() {
if(this.reason) {
this.loading = true;
closeOrder({
await closeOrder({
deliveryId: this.data.deliveryId,
desc: this.reason,
}).finally(() => this.loading = false);
......
<template>
<el-dialog title="物流详情" :visible.sync="visible" width="800px" @closed="$emit('close')">
<div class="logistics-info">
<div>
<span class="key">快递公司:</span>
<span>{{ logisticsCompanyName || '--' }}</span>
</div>
<div>
<span class="key">快递单号:</span>
<span>{{ logisticCode || '--' }}</span>
<el-button class="ml15" type="text" v-clipboard:copy="data.logisticCode" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
</div>
</div>
<div v-if="logisticsList.length>0" class="logistics-step">
<h3>派送中</h3>
<el-timeline class="hollow logistics-list">
<el-timeline-item
v-for="(activity, index) in logisticsList"
:key="index"
:color="index===0?'':'#c0c4cc'">
<div class="logistics-line-step">
<span class="time">{{ activity.acceptTime || '--' }}</span>
<p class="content">{{ activity.acceptStation }}</p>
</div>
</el-timeline-item>
</el-timeline>
</div>
<div v-else class="empty_block"></div>
</el-dialog>
</template>
<script>
import fetch from '@/api/performance.js';
const { getLogisticsInfo } = fetch;
export default {
props: {
data: Object
},
data() {
return {
visible: false,
logisticsList: [],
logisticsCompanyName: '',
logisticCode: ''
};
},
mounted() {
this.visible = true;
this.getInfo();
},
methods: {
async getInfo() {
let { result } = await getLogisticsInfo({
companyCode: this.data.logisticsCompanyCode/* 'YD' */,
logisticsNo: this.data.logisticsNo/* '4312317986451' */,
});
this.logisticsList = result.traces || [];
this.logisticsList.reverse();
this.logisticsCompanyName = result.logisticsCompanyName;
this.logisticCode = result.logisticCode;
}
}
};
</script>
<style lang="scss" scoped>
.empty_block::after {
content: '暂无物流信息';
}
.logistics-info {
display: flex;
&>div {
flex: 1;
}
span {
display: inline-block;
}
span + span {
margin-left: 10px;
}
}
.logistics-step {
margin-top: 24px;
background: #fafafa;
padding: 15px 0px;
h3 {
color: #303133;
font-size: 16px;
border-bottom: 1px solid #dcdfe6;
padding: 0 20px 15px 20px;
};
.logistics-list {
height: 328px;
overflow-y: auto;
padding: 20px
};
.logistics-item {
position: relative;
padding-bottom: 10px;
}
.logistics-line-step {
display: flex;
font-size: 12px;
}
.logistics-line-step .time {
margin-right: 20px;
width: 160px;
line-height: 22px;
font-weight: 500;
color: #303133;
}
.logistics-line-step .content {
color: #303133;
flex: 1;
line-height: 22px;
}
}
</style>
......@@ -109,6 +109,9 @@ export default {
</script>
<style lang="scss" scoped>
.empty_block::after {
content: '暂无物流信息';
}
.logistics-info {
display: flex;
&>div {
......
......@@ -36,6 +36,7 @@ export default {
deliveryId: this.data.deliveryId,
}).finally(() => this.loading = false);
this.visible = false;
this.$emit('refresh');
}
}
};
......
......@@ -7,13 +7,13 @@
<div class="line"></div>
<i>2</i>
<span>门店核销</span>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate }}</div>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate('dateTime') }}</div>
</div>
<div class="status-text">等待核销</div>
<div class="status-description">发货单创建成功</div>
<div>
<el-button class="specter" type="primary">发货核销</el-button>
<el-button>关闭发货单</el-button>
<el-button class="specter" type="primary" @click="openDialog('WriteOff')">发货核销</el-button>
<el-button @click="openDialog('CancelOrder')">关闭发货单</el-button>
</div>
</div>
<div class="delivery-todo" v-if="deliveryInfo.deliveryType === 1 && deliveryInfo.deliveryFlag === 0">
......@@ -23,13 +23,13 @@
<div class="line"></div>
<i>2</i>
<span>仓库发货</span>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate }}</div>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate('dateTime') }}</div>
</div>
<div class="status-text">等待仓库发货</div>
<div class="status-description">发货单创建成功</div>
<div>
<el-button class="specter" type="primary">发货核销</el-button>
<el-button>关闭发货单</el-button>
<el-button class="specter" type="primary" @click="openDialog('LogisticsDelivery')">发货核销</el-button>
<el-button @click="openDialog('CancelOrder')">关闭发货单</el-button>
</div>
</div>
<div v-else-if="deliveryInfo.deliveryType === 2 && deliveryInfo.deliveryFlag === 1" class="delivery-complete">
......@@ -39,7 +39,7 @@
</div>
<div v-else-if="deliveryInfo.deliveryType === 1 && deliveryInfo.deliveryFlag === 1" class="delivery-complete">
<i class="el-icon-success"></i>
<p>已发货</p>
<p>发货成功</p>
<p>仓库已发货,发货单完成</p>
</div>
<div v-else-if="deliveryInfo.deliveryFlag === 2" class="delivery-complete">
......@@ -81,9 +81,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStrand">
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -95,24 +96,35 @@
<el-table-column label="数量" prop="exchangeQuantity"></el-table-column>
<el-table-column label="物流公司 | 运单号">
<template slot-scope="{ row }">
<p>{{ row.logisticsCompanyName || '--' }}</p>
<p>{{ row.logisticsNo || '--' }}</p>
<div v-if="row.logisticsNo">
<p>{{ row.logisticsCompanyName || '--' }}<el-divider direction="vertical"></el-divider>{{ row.logisticsNo || '--' }}</p>
<p><el-button type="text" @click="openDialog('LogisticsDetail')">查看物流</el-button></p>
</div>
<span v-else>- -</span>
</template>
</el-table-column>
</el-table>
<component :is="activeDialog" :data="deliveryInfo" @close="activeDialog=''" @refresh="getDeliveryDetail"></component>
</div>
</template>
<script>
import CancelOrder from './components/cancel-order-dialog';
import LogisticsDelivery from './components/logistics-delivery-dialog';
import WriteOff from './components/writeoff-dialog';
import LogisticsDetail from './components/logistics-detail-dialog';
import fetch from '@/api/performance.js';
const { getDeliveryDetail } = fetch;
export default {
name: 'DeliveryDetail',
components: { CancelOrder, LogisticsDelivery, WriteOff, LogisticsDetail },
data() {
return {
giftList: [],
deliveryInfo: {},
loading: false,
activeDialog: ''
};
},
created() {
......@@ -139,8 +151,32 @@ export default {
let { result } = await getDeliveryDetail({ deliveryId: this.$route.query.deliveryId }).finally(()=> this.loading = false);
this.deliveryInfo = result.orderDelivery,
this.giftList = [ result.orderDelivery ];
},
openDialog(dialogName) {
this.activeDialog = dialogName;
},
},
filters: {
formatDate(ms, type = 'date') {
if (!ms) return '--';
const date = [];
const time = [];
ms = new Date(ms);
date.push(ms.getFullYear());
date.push((ms.getMonth() + 1).toString().padStart(2, '0'));
date.push(ms.getDate().toString().padStart(2, '0'));
time.push(ms.getHours().toString().padStart(2, '0'));
time.push(ms.getMinutes().toString().padStart(2, '0'));
time.push(ms.getSeconds().toString().padStart(2, '0'));
return {
date: date.join('-'),
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
}
},
};
</script>
......
......@@ -37,9 +37,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStrand">
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -68,22 +69,22 @@
<div class="mt10"><span>收货信息:</span><span>{{row.consignee}} {{row.consigneePhone}} {{row.consigneeAddress}}</span></div>
</template>
<template v-else-if="row.deliveryType === 1 && row.deliveryFlag === 1">
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate}}</span></div>
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>收货信息:</span><span>{{row.consignee}} {{row.consigneePhone}} {{row.consigneeAddress}}</span></div>
</template>
<template v-else-if="row.deliveryType === 2 && row.deliveryFlag === 0">
<div class="mt10"><span>自提信息:</span><span>{{row.consignee}} {{row.consigneePhone}}</span></div>
<div class="mt10"><span>自提时间:</span><span>{{row.pickUpStopTime | formatDate}}</span></div>
<div class="mt10"><span>自提时间:</span><span>{{row.pickUpStopTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>自提地址:</span><span>{{row.pickUpStartTime}} - {{row.pickUpStopTime}}</span></div>
</template>
<template v-else-if="row.deliveryType === 2 && row.deliveryFlag === 1">
<div class="mt10"><span>自提信息:</span><span>{{row.consignee}} {{row.consigneePhone}}</span></div>
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate}}</span></div>
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>核销门店:</span><span>{{row.pickUpPointName}}</span></div>
<div class="mt10"><span>操作人:</span><span>{{row.pickUpPointName}}</span></div>
</template>
<template v-else-if="row.deliveryFlag === 2">
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate}}</span></div>
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>关闭原因:</span><span>{{row.cancelReason}}</span></div>
</template>
</div>
......@@ -308,7 +309,8 @@ export default {
return {
date: date.join('-'),
time: time.join(':')
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
},
......
......@@ -40,9 +40,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStrand">
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -249,7 +250,8 @@ export default {
return {
date: date.join('-'),
time: time.join(':')
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
},
......
......@@ -41,9 +41,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStandard)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStandard">
<span v-for="(item, i) in JSON.parse(row.giftSkuStandard || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -73,25 +74,25 @@
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 0 && row.refundLogisticsNo">
<div class="mt10"><span>寄回时间:</span><span>{{row.deliveryTime | formatDate}}</span></div>
<div class="mt10"><span>寄回时间:</span><span>{{row.deliveryTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>退货原因:</span><span>{{row.refundReason}}</span></div>
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 1">
<div class="mt10"><span>操作人:</span><span>{{row.refundUserName}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>退货原因:</span><span>{{row.refundReason}}</span></div>
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 2">
<div class="mt10"><span>操作人:</span><span>{{row.refundUserName}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>拒绝原因:</span><span>{{row.refuseReason}}</span></div>
<div class="mt10"><span>退货原因:</span><span>{{row.refundReason}}</span></div>
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 3">
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate}}</span></div>
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>关闭原因:</span><span>{{row.cancelReason}}</span></div>
</template>
</div>
......@@ -424,7 +425,8 @@ export default {
return {
date: date.join('-'),
time: time.join(':')
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
},
......@@ -443,6 +445,9 @@ export default {
</script>
<style lang="scss" scoped>
.empty_block::after {
content: '暂无物流信息';
}
.logistics-info {
display: flex;
&>div {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment