fix: 售后单物流跟踪

feature/task1.0.0__0514__ch
向文可 3 years ago
parent 9f2e57560d
commit b451cc9f89

@ -118,6 +118,13 @@ const actions = {
init: true,
});
},
track: async (context, id) => {
let res = await api.logistics(id);
if (!res) {
ElMessage.error('加载物流信息失败');
}
return res;
},
refundDetail: async (context, id) => {
let res = await api.refundDetail(id);
if (!res) {

@ -28,11 +28,13 @@
</template>
<script setup lang="jsx">
const props = defineProps({
service: {
type: Boolean,
default: false,
},
});
const store = useStore();
const opts = computed(() => store.state.order.opts);
if (!unref(opts).init) {
store.dispatch('order/load');
}
const state = reactive({
loading: false,
visible: false,
@ -44,7 +46,7 @@
const show = async (orderId) => {
state.visible = true;
state.loading = true;
let res = await store.dispatch('order/track', orderId);
let res = await store.dispatch(props.service ? 'service/track' : 'order/track', orderId);
Object.assign(state.info, res || {});
state.loading = false;
};

@ -258,12 +258,12 @@
</template>
</el-scrollbar>
</div>
<OrderTrack ref="refsOrderTrack" />
<OrderTrack ref="refsOrderTrack" service />
</div>
</template>
<script setup lang="jsx">
import OrderTrack from './track.vue';
import OrderTrack from '../order/track.vue';
const store = useStore();
const route = useRoute();
const { proxy } = getCurrentInstance();
@ -410,7 +410,7 @@
};
const refsOrderTrack = ref(null);
const handleTrack = () => {
unref(refsOrderTrack).show(state.detail.refundLogistics);
unref(refsOrderTrack).show(state.detail.refundId);
};
/* 同意退货/退款 */
const handleResolveRefundOrReturn = async () => {

@ -1,67 +0,0 @@
<template>
<el-dialog v-model="state.visible" title="物流跟踪">
<div v-loading="state.loading" class="track-container">
<h3>
<span class="name">{{ state.info.companyName }}</span>
<span class="no">{{ state.info.trackingNo }}</span>
<el-button type="text" @click="$copy(`${state.info.companyName} ${state.info.trackingNo}`)">
复制
</el-button>
</h3>
<el-scrollbar max-height="50vh">
<el-timeline>
<el-timeline-item
v-for="(item, index) in state.info.logisticsDataList"
:key="index"
placement="top"
:timestamp="item.time"
>
{{ item.context }}
</el-timeline-item>
</el-timeline>
</el-scrollbar>
</div>
<template #footer>
<el-button @click="close"></el-button>
</template>
</el-dialog>
</template>
<script setup lang="jsx">
const store = useStore();
const opts = computed(() => store.state.order.opts);
if (!unref(opts).init) {
store.dispatch('order/load');
}
const state = reactive({
loading: false,
visible: false,
info: {
logisticsDataList: [],
},
});
const show = async (info) => {
state.visible = true;
Object.assign(state.info, info);
state.loading = false;
};
const close = () => {
state.visible = false;
};
defineExpose({
show,
close,
});
</script>
<style lang="less" scoped>
.track-container {
h3 {
margin-bottom: @layout-space;
.no {
margin: 0 @layout-space;
}
}
}
</style>
Loading…
Cancel
Save