联调查看物流/修改收货信息/添加备注/补单发货接口

上级 eb1a4449
...@@ -28,9 +28,18 @@ export function sendOrder(data) { ...@@ -28,9 +28,18 @@ export function sendOrder(data) {
} }
//查看物流 //查看物流
export function expressInfoNew(data){ export function expressInfoNew(params){
return request({ return request({
url: '/system/order/getExpressInfoNew', url: '/system/order/getExpressInfoNew',
method: 'get',
params
})
}
// 修改订单收货信息
export function orderInfoEdit(data){
return request({
url: '/system/order/orderInfoEdit',
method: 'post', method: 'post',
data: data data: data
}) })
......
<template> <template>
<div class="orderDetail"> <div class="orderDetail">
<el-card> <el-card>
<el-steps :active="1" align-center> <el-steps :active="orderDetail ? orderDetail.status : 1" align-center>
<el-step title="买家下单付款"></el-step> <el-step title="买家下单付款"></el-step>
<el-step title="商家发货"></el-step> <el-step title="商家发货"></el-step>
<el-step title="订单完成"></el-step> <el-step title="订单完成"></el-step>
...@@ -17,23 +17,23 @@ ...@@ -17,23 +17,23 @@
<div> <div>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">订单编号</el-col> <el-col :span="3" class="text-r">订单编号</el-col>
<el-col :span="6" class="text-l">0</el-col> <el-col :span="6" class="text-l">{{orderDetail ? orderDetail.parent_order_sn : ''}}</el-col>
</el-row> </el-row>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">下单时间</el-col> <el-col :span="3" class="text-r">下单时间</el-col>
<el-col :span="6" class="text-l">0</el-col> <el-col :span="6" class="text-l">{{orderDetail ? formatter(orderDetail.addtime) : ''}}</el-col>
</el-row> </el-row>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">商品数量</el-col> <el-col :span="3" class="text-r">商品数量</el-col>
<el-col :span="6" class="text-l">5</el-col> <el-col :span="6" class="text-l">{{goodsNum}}</el-col>
</el-row> </el-row>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">商品总价</el-col> <el-col :span="3" class="text-r">商品总价</el-col>
<el-col :span="6" class="text-l">0</el-col> <el-col :span="6" class="text-l">{{goodsPrice}}</el-col>
</el-row> </el-row>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">运费</el-col> <el-col :span="3" class="text-r">运费</el-col>
<el-col :span="6" class="text-l">6</el-col> <el-col :span="6" class="text-l">{{goodsFreight}}</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -43,20 +43,20 @@ ...@@ -43,20 +43,20 @@
<img class="icon" src="@/assets/image/order/icon2.png" alt=""> <img class="icon" src="@/assets/image/order/icon2.png" alt="">
<span>买家信息</span> <span>买家信息</span>
</div> </div>
<el-button size="mini" type="primary" @click="modifyinfo">修改收货信息</el-button> <el-button size="mini" type="primary" @click="modifyinfo" :disabled="orderDetail && orderDetail.status > 2">修改收货信息</el-button>
</div> </div>
<div> <div>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">订单编号</el-col> <el-col :span="3" class="text-r">收货人姓名</el-col>
<el-col :span="6" class="text-l">0</el-col> <el-col :span="6" class="text-l">{{orderDetail ? orderDetail.shipping_name : ''}}</el-col>
<el-col :span="3" class="text-r">下单时间</el-col> <el-col :span="3" class="text-r">联系电话</el-col>
<el-col :span="6" class="text-l">0</el-col> <el-col :span="6" class="text-l">{{orderDetail ? orderDetail.phone : ''}}</el-col>
</el-row> </el-row>
<el-row class="row-title"> <el-row class="row-title">
<el-col :span="3" class="text-r">商品数量</el-col> <el-col :span="3" class="text-r">收货地址</el-col>
<el-col :span="6" class="text-l">5</el-col> <el-col :span="6" class="text-l">{{orderDetail ? orderDetail.province + orderDetail.city + orderDetail.county + orderDetail.town + orderDetail.address : ''}}</el-col>
<el-col :span="3" class="text-r">商品总价</el-col> <el-col :span="3" class="text-r"></el-col>
<el-col :span="6" class="text-l">0</el-col> <el-col :span="6" class="text-l"></el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -68,28 +68,56 @@ ...@@ -68,28 +68,56 @@
</div> </div>
<div> <div>
<el-button size="mini" type="primary" @click="goShipping(1)">去发货</el-button> <el-button size="mini" type="primary" @click="goShipping(1)">去发货</el-button>
<el-button size="mini" @click="goShipping(2)">补单发货</el-button> <el-button size="mini" @click="goShipping(2)" :disabled="orderDetail && orderDetail.status > 2">补单发货</el-button>
</div> </div>
</div> </div>
<el-table :data="[{order_sn: '111'}]" style="border: 1px solid #eee;" @selection-change="handleSelectionChange"> <el-table :data="orderDetail ? orderDetail.item : []" style="border: 1px solid #eee;" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column label="订单号" prop="order_sn"/> <el-table-column label="订单号" prop="order_sn"/>
<el-table-column label="商品名称" prop="order_sn"/> <el-table-column label="商品名称">
<el-table-column label="商品规格" prop="order_sn"/> <template slot-scope="scope">
<el-table-column label="单价" prop="order_sn"/> {{scope.row.goods_list[0].title}}
<el-table-column label="数量" prop="Quantity"/> </template>
<el-table-column label="商品状态" prop="Money"/> </el-table-column>
<el-table-column label="快递公司" prop="Shipname"/> <el-table-column label="商品规格">
<el-table-column label="快递单号" prop="Tel"/> <template slot-scope="scope">
{{scope.row.goods_list[0].goods_option_title}}
</template>
</el-table-column>
<el-table-column label="单价">
<template slot-scope="scope">
{{scope.row.goods_list[0].price}}
</template>
</el-table-column>
<el-table-column label="数量">
<template slot-scope="scope">
{{scope.row.goods_list[0].num}}
</template>
</el-table-column>
<el-table-column label="商品状态">
<template slot-scope="scope">
{{scope.row.goods_list[0].goods_status == 0 ? '未发货' : '已发货'}}
</template>
</el-table-column>
<el-table-column label="快递公司">
<template slot-scope="scope">
{{scope.row.goods_list[0].deliver_Name}}
</template>
</el-table-column>
<el-table-column label="快递单号" prop="Tel">
<template slot-scope="scope">
{{scope.row.goods_list[0].deliver_no}}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width"> <el-table-column label="操作" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="goShipping(3)">去发货</el-button> <el-button size="mini" type="text" @click="goShipping(3, scope.row.goods_list[0].goods_id)" :disabled="scope.row.goods_list[0].goods_status > 0">{{getStatus(scope.row.goods_list[0].goods_status, scope.row.goods_list[0].is_reissue)}}</el-button>
<el-button size="mini" type="text" @click="getExpressInfoNew">查看物流</el-button> <el-button v-if="scope.row.goods_list[0].goods_status > 0" size="mini" type="text" @click="getExpressInfoNew(scope.row.order_sn, scope.row.goods_list[0].goods_id, scope.row.goods_list[0].sku_id)">查看物流</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div class="orderItem"> <!-- <div class="orderItem">
<div class="orderTitle"> <div class="orderTitle">
<img class="icon" src="@/assets/image/order/icon4.png" alt=""> <img class="icon" src="@/assets/image/order/icon4.png" alt="">
<span>操作历史</span> <span>操作历史</span>
...@@ -99,7 +127,7 @@ ...@@ -99,7 +127,7 @@
<el-table-column label="操作人" prop="order_sn" width="300"/> <el-table-column label="操作人" prop="order_sn" width="300"/>
<el-table-column label="操作内容" prop="order_sn"/> <el-table-column label="操作内容" prop="order_sn"/>
</el-table> </el-table>
</div> </div> -->
<div class="orderItem"> <div class="orderItem">
<div class="orderTitle"> <div class="orderTitle">
<div style="display: flex; align-items: center; width: 70%;"> <div style="display: flex; align-items: center; width: 70%;">
...@@ -108,7 +136,7 @@ ...@@ -108,7 +136,7 @@
</div> </div>
<el-button size="mini" type="primary" @click="addRemark">添加备注</el-button> <el-button size="mini" type="primary" @click="addRemark">添加备注</el-button>
</div> </div>
<div style="width: 75%; min-height: 100px; border: 1px solid #eee;"></div> <div style="width: 75%; min-height: 100px; border: 1px solid #eee;">{{orderDetail ? orderDetail.remark : ''}}</div>
</div> </div>
</div> </div>
</el-card> </el-card>
...@@ -121,15 +149,17 @@ ...@@ -121,15 +149,17 @@
:append-to-body="true" :append-to-body="true"
> >
<div style="margin: 0 10%"> <div style="margin: 0 10%">
<el-form ref="form" :model="form" label-width="100px"> <el-form ref="addressForm" :model="addressForm" label-width="100px">
<el-form-item label="收货人姓名:"> <el-form-item label="收货人姓名:">
<el-input size="mini" v-model="form.name" placeholder="请输入收货人姓名"></el-input> <el-input size="mini" v-model="addressForm.name" placeholder="请输入收货人姓名"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系电话:"> <el-form-item label="联系电话:">
<el-input size="mini" v-model="form.mobile" placeholder="请输入联系电话"></el-input> <el-input size="mini" v-model="addressForm.mobile" placeholder="请输入联系电话"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收货地址:"> <el-form-item label="收货地址:">
<el-input size="mini" v-model="form.address" placeholder="请输入收货地址"></el-input> <el-cascader v-model="addressForm.areaList" :props='props' placeholder="请选择具体的省市区" style="width:100%"></el-cascader>
<el-input size="mini" v-model="addressForm.street_name" placeholder="请输入街道"></el-input>
<el-input size="mini" v-model="addressForm.address" placeholder="请输入收货地址"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -177,7 +207,7 @@ ...@@ -177,7 +207,7 @@
:append-to-body="true" :append-to-body="true"
> >
<div style="padding: 20px 10% 1px; background: #F7F8FA;"> <div style="padding: 20px 10% 1px; background: #F7F8FA;">
<el-form ref="form" :model="form" label-width="100px"> <el-form ref="form" label-width="100px">
<el-form-item label="添加备注:"> <el-form-item label="添加备注:">
<el-input <el-input
type="textarea" type="textarea"
...@@ -204,22 +234,24 @@ ...@@ -204,22 +234,24 @@
:type="activity.type" :type="activity.type"
color="#0bbd87" color="#0bbd87"
:size="activity.size" :size="activity.size"
:timestamp="formatter(activity.time)"> :timestamp="formatter(activity.msgTime)">
{{activity.message}} {{activity.content}}
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
<div v-if="activities.length == 0">暂无物流信息</div>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {sendOrder, expressInfoNew, remarkOrder} from '@/api/module/order' import {orderInfo, sendOrder, expressInfoNew, remarkOrder, orderInfoEdit} from '@/api/module/order'
import {dateFormat} from '@/utils' import {dateFormat} from '@/utils'
import {getAreaList} from '@/api/module/retreat/address'
export default { export default {
props: { props: {
orderDetail: { orderDetail: {
type: String type: Object
}, },
expressLists: { expressLists: {
type: Array type: Array
...@@ -235,23 +267,67 @@ export default { ...@@ -235,23 +267,67 @@ export default {
addRemarkDialog: false, addRemarkDialog: false,
dialogCheck: false, dialogCheck: false,
titleInfo: '', titleInfo: '',
form: { addressForm: {
name: '', name: '',
mobile: '', mobile: '',
address: '' address: '',
street_name: '',
areaList: [] // 省市区
}, },
activities: [], activities: [],
multipleSelection: [] multipleSelection: [],
props: {
expandTrigger: 'click',
lazy: true,
lazyLoad: this.lazyLoad,
value: "id",
label: 'name',
leaf: 'leaf'
},
goShippingNum: 0,
goods_ids: null
} }
}, },
mounted() { computed: {
goodsFreight() {
let freight = 0
if (this.orderDetail) {
this.orderDetail.item.map(item => {
freight += item.freight
})
}
return freight
},
goodsPrice() {
let price = 0
if (this.orderDetail) {
this.orderDetail.item.map(item => {
price += item.goods_list[0].price
})
}
return price
},
goodsNum() {
let goodsNum = 0
if (this.orderDetail) {
this.orderDetail.item.map(item => {
goodsNum += item.goods_list[0].num
})
}
return goodsNum
}
}, },
methods: { methods: {
getStatus(status, is_reissue) {
return status == 0 ? '未发货' : status == 1 && is_reissue == 1 ? '已补单' : status == 1 && is_reissue == 0 ? '已发货' : '已完成'
},
formatter(time) { formatter(time) {
return dateFormat(time, 'Y-m-d H:i:s') return dateFormat(time, 'Y-m-d H:i:s')
}, },
goShipping(val) { goShipping(val, id) {
this.goShippingNum = val
this.goods_ids = id
this.expressNum = '' this.expressNum = ''
this.express_sn = '' this.express_sn = ''
...@@ -280,42 +356,89 @@ export default { ...@@ -280,42 +356,89 @@ export default {
break break
} }
}, },
// 订单详情
handleInfo() {
this.detailDialog = true
let order_sn = '20200318e095e2d09354'
// let order_sn = orderDetail.parent_order_sn
orderInfo({order_sn: order_sn}).then(res => {
if (res.code == 1) {
this.orderDetail = res.data
}
})
},
// 选中的表格 // 选中的表格
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val;
}, },
modifyinfo() { modifyinfo() {
this.form = { this.addressForm = {
name: '', name: '',
mobile: '', mobile: '',
address: '' address: '',
street_name: ''
} }
this.modifyinfoDialog = true this.modifyinfoDialog = true
}, },
// 修改买家信息 // 修改买家信息
handleModifyInfo() { handleModifyInfo() {
if (!this.form.name) { if (!this.addressForm.name) {
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: '请输入收货人姓名' message: '请输入收货人姓名'
}) })
return return
} }
if (!this.form.mobile) { if (!this.addressForm.mobile) {
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: '请输入联系电话' message: '请输入联系电话'
}) })
return return
} }
if (!this.form.address) { if (!this.addressForm.areaList) {
this.$message({
type: 'warning',
message: '请选择省市区'
})
return
}
if (!this.addressForm.street_name) {
this.$message({
type: 'warning',
message: '请输入街道'
})
return
}
if (!this.addressForm.address) {
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: '请输入收货地址' message: '请输入收货地址'
}) })
return return
} }
this.modifyinfoDialog = false
let params = {
id: this.orderDetail.parent_order_sn,
shipping_name: this.addressForm.name,
mobile: this.addressForm.mobile,
street_name: this.addressForm.street_name,
address: this.addressForm.address,
province_name: this.addressForm.areaList[0],
city_name: this.addressForm.areaList[1],
district_name: this.addressForm.areaList[2]
}
orderInfoEdit(params).then(res => {
if (res.code == 1) {
this.$message({
type: 'success',
message: '修改成功'
})
this.modifyinfoDialog = false
this.handleInfo()
}
})
}, },
// 去发货 // 去发货
handleGoShipping() { handleGoShipping() {
...@@ -341,8 +464,17 @@ export default { ...@@ -341,8 +464,17 @@ export default {
} }
}) })
let goods_ids = []
if (this.goShippingNum != 3) {
this.multipleSelection.map(item => {
goods_ids.push(item.goods_list[0].goods_id)
})
} else {
goods_ids = [this.goods_ids]
}
let params = { let params = {
order_goods_ids: [10], order_goods_ids: goods_ids,
express_company_name: expressName, express_company_name: expressName,
express_sn: this.express_sn, express_sn: this.express_sn,
express_code: this.expressNum express_code: this.expressNum
...@@ -358,17 +490,17 @@ export default { ...@@ -358,17 +490,17 @@ export default {
}) })
}, },
// 查看物流 // 查看物流
getExpressInfoNew() { getExpressInfoNew(sn, goodsId, skuId) {
this.dialogCheck = true this.dialogCheck = true
let params = { let params = {
order_sn: '', order_sn: sn,
goods_id: '', goods_id: goodsId,
sku_id: '' sku_id: skuId
} }
expressInfoNew(params).then(res => { expressInfoNew(params).then(res => {
if (res.code == 1) { if (res.code == 1) {
this.activities = res.data.orderTrack
} }
}) })
}, },
...@@ -387,15 +519,70 @@ export default { ...@@ -387,15 +519,70 @@ export default {
} }
let params = { let params = {
order_id: '', order_id: this.orderDetail.parent_order_sn,
remark: this.remark remark: this.remark
} }
remarkOrder().then(res => { remarkOrder(params).then(res => {
if (res.code == 1) { if (res.code == 1) {
this.$message({
type: 'success',
message: '添加成功'
})
this.addRemarkDialog = false this.addRemarkDialog = false
} }
}) })
} },
// 三级联动
lazyLoad(node, resolve) {
this.getArea(node, resolve);
},
getArea(node, resolve) {
const level = node.level;
let limboNode = {};
if(level === 0) {
limboNode = {pid: 0}
}
if(level === 1) {
limboNode = { pid: node.value };
}
if(level === 2) {
limboNode = { pid: node.value };
}
getAreaList(limboNode).then(res => {
let result = {};
if (level === 0) {
result = res.data
result.forEach(item => {
item.value = item.id;
item.label = item.name;
item.children=[];
item.leaf = 0; // 可以控制 是否有下级 值为true都不行,必须等于0
})
}
if (level === 1) {
result = res.data
result.forEach(item => {
item.value = item.id;
item.label = item.name
item.children=[];
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = 0
})
}
if (level === 2) {
result = res.data
result.forEach(item => {
item.value = item.id;
item.label = item.name
item.leaf = 1;
})
}
resolve(result)
})
},
} }
} }
</script> </script>
...@@ -419,6 +606,9 @@ export default { ...@@ -419,6 +606,9 @@ export default {
/deep/.el-dialog__body { /deep/.el-dialog__body {
padding-bottom: 0; padding-bottom: 0;
} }
/deep/.el-input--medium .el-input__inner {
height: 28px;
}
.orderDetail { .orderDetail {
height: 660px; height: 660px;
...@@ -428,9 +618,11 @@ export default { ...@@ -428,9 +618,11 @@ export default {
.text-r { .text-r {
text-align: right; text-align: right;
background: #F7F8FA; background: #F7F8FA;
min-height: 38px;
} }
.text-l { .text-l {
text-align: left; text-align: left;
min-height: 38px;
} }
.orderItem { .orderItem {
margin-bottom: 20px; margin-bottom: 20px;
...@@ -454,4 +646,8 @@ export default { ...@@ -454,4 +646,8 @@ export default {
.dialog-footer { .dialog-footer {
margin: 0 10%; margin: 0 10%;
} }
.logistics {
height: 600px;
overflow-y: auto;
}
</style> </style>
\ No newline at end of file
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
detailDialog: false, detailDialog: false,
isDeliveryOpen: false, isDeliveryOpen: false,
excelList: [], excelList: [],
order_detail: '', order_detail: null,
expressLists: [] expressLists: []
} }
}, },
...@@ -344,9 +344,13 @@ ...@@ -344,9 +344,13 @@
// 订单详情 // 订单详情
handleInfo(row) { handleInfo(row) {
this.detailDialog = true this.detailDialog = true
this.order_detail = row.parent_order_sn let order_sn = '20200318e095e2d09354'
orderInfo({order_sn: this.order_detail}).then(res => { // let order_sn = row.parent_order_sn
orderInfo({order_sn: order_sn}).then(res => {
if (res.code == 1) {
this.order_detail = res.data
}
}) })
}, },
// 获取物流信息 // 获取物流信息
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论