|
@@ -7,6 +7,10 @@
|
|
|
</el-input>
|
|
</el-input>
|
|
|
<el-input clearable class="filter-item" style="width: 200px;" placeholder="请输入订单编号" v-model="listQuery.orderSn">
|
|
<el-input clearable class="filter-item" style="width: 200px;" placeholder="请输入订单编号" v-model="listQuery.orderSn">
|
|
|
</el-input>
|
|
</el-input>
|
|
|
|
|
+ <el-select multiple style="width: 200px" class="filter-item" placeholder="请选择订单状态" v-model="listQuery.orderStatusArray">
|
|
|
|
|
+ <el-option v-for="(key, value) in statusMap" :key="key" :label="key" :value="value">
|
|
|
|
|
+ </el-option>
|
|
|
|
|
+ </el-select>
|
|
|
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查找</el-button>
|
|
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查找</el-button>
|
|
|
<el-button class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload" :loading="downloadLoading">导出</el-button>
|
|
<el-button class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload" :loading="downloadLoading">导出</el-button>
|
|
|
</div>
|
|
</div>
|
|
@@ -14,34 +18,36 @@
|
|
|
<!-- 查询结果 -->
|
|
<!-- 查询结果 -->
|
|
|
<el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row>
|
|
<el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row>
|
|
|
|
|
|
|
|
- <el-table-column type="expand">
|
|
|
|
|
- <template slot-scope="props">
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
-
|
|
|
|
|
- <el-table-column align="center" width="100px" label="订单ID" prop="id" sortable>
|
|
|
|
|
|
|
+ <el-table-column align="center" min-width="100" label="订单编号" prop="orderSn">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
|
|
- <el-table-column align="center" min-width="100px" label="用户ID" prop="userId">
|
|
|
|
|
|
|
+ <el-table-column align="center" label="用户ID" prop="userId">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
|
|
- <el-table-column align="center" min-width="200px" label="订单编号" prop="orderSn">
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
-
|
|
|
|
|
- <el-table-column align="center" min-width="100px" label="订单状态" prop="orderStatus">
|
|
|
|
|
|
|
+ <el-table-column align="center" label="订单状态" prop="orderStatus">
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<el-tag>{{scope.row.orderStatus | orderStatusFilter}}</el-tag>
|
|
<el-tag>{{scope.row.orderStatus | orderStatusFilter}}</el-tag>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
|
|
- <el-table-column align="center" min-width="100px" label="订单费用" prop="orderPrice">
|
|
|
|
|
|
|
+ <el-table-column align="center" label="订单金额" prop="orderPrice">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+
|
|
|
|
|
+ <el-table-column align="center" label="支付金额" prop="actualPrice">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
|
|
- <el-table-column align="center" min-width="100px" label="实际费用" prop="actualPrice">
|
|
|
|
|
|
|
+ <el-table-column align="center" label="支付时间" prop="payTime">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+
|
|
|
|
|
+ <el-table-column align="center" label="物流单号" prop="shipSn">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+
|
|
|
|
|
+ <el-table-column align="center" label="物流渠道" prop="shipChannel">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
|
|
<el-table-column align="center" label="操作" width="200" class-name="small-padding fixed-width">
|
|
<el-table-column align="center" label="操作" width="200" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
|
|
+ <el-button type="primary" size="mini" @click="handleDetail(scope.row)">详情</el-button>
|
|
|
<el-button type="primary" size="mini" @click="handleShip(scope.row)" v-if="scope.row.orderStatus==201">发货</el-button>
|
|
<el-button type="primary" size="mini" @click="handleShip(scope.row)" v-if="scope.row.orderStatus==201">发货</el-button>
|
|
|
<el-button type="primary" size="mini" @click="handleRefund(scope.row)" v-if="scope.row.orderStatus==202">退款</el-button>
|
|
<el-button type="primary" size="mini" @click="handleRefund(scope.row)" v-if="scope.row.orderStatus==202">退款</el-button>
|
|
|
</template>
|
|
</template>
|
|
@@ -55,6 +61,65 @@
|
|
|
</el-pagination>
|
|
</el-pagination>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 订单详情对话框 -->
|
|
|
|
|
+ <el-dialog title="订单详情" width="800" :visible.sync="orderDialogVisible">
|
|
|
|
|
+
|
|
|
|
|
+ <el-form :data="orderDetail" label-position="left">
|
|
|
|
|
+ <el-form-item label="订单编号">
|
|
|
|
|
+ <span>{{ orderDetail.order.orderSn }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="订单状态">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <el-tag>{{orderDetail.order.orderStatus | orderStatusFilter}}</el-tag>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="订单用户">
|
|
|
|
|
+ <span>{{ orderDetail.user.nickname }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="收货信息">
|
|
|
|
|
+ <span>(收货人){{ orderDetail.order.consignee }}</span>
|
|
|
|
|
+ <span>(手机号){{ orderDetail.order.mobile }}</span>
|
|
|
|
|
+ <span>(地址){{ orderDetail.order.address }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="商品信息">
|
|
|
|
|
+ <el-table size="small" :data="orderDetail.orderGoods" border fit highlight-current-row>
|
|
|
|
|
+ <el-table-column align="center" label="商品名称" prop="goodsName" />
|
|
|
|
|
+ <el-table-column align="center" label="商品编号" prop="goodsSn" />
|
|
|
|
|
+ <el-table-column align="center" label="货品规格" prop="specifications" />
|
|
|
|
|
+ <el-table-column align="center" label="货品价格" prop="price" />
|
|
|
|
|
+ <el-table-column align="center" label="货品数量" prop="number" />
|
|
|
|
|
+ <el-table-column align="center" label="货品图片" prop="picUrl">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <img :src="scope.row.picUrl" width="40"/>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="费用信息">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ (实际费用){{ orderDetail.order.actualPrice }}元 =
|
|
|
|
|
+ (商品总价){{ orderDetail.order.goodsPrice }}元 +
|
|
|
|
|
+ (快递费用){{ orderDetail.order.freightPrice }}元 -
|
|
|
|
|
+ (优惠减免){{ orderDetail.order.couponPrice }}元 -
|
|
|
|
|
+ (积分减免){{ orderDetail.order.integralPrice }}元
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="支付信息">
|
|
|
|
|
+ <span>(支付渠道)微信支付</span>
|
|
|
|
|
+ <span>(支付时间){{ orderDetail.order.payTime }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="快递信息">
|
|
|
|
|
+ <span>(快递公司){{ orderDetail.order.shipChannel }}</span>
|
|
|
|
|
+ <span>(快递单号){{ orderDetail.order.shipSn }}</span>
|
|
|
|
|
+ <span>(发货时间){{ orderDetail.order.shipTime }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="收货信息">
|
|
|
|
|
+ <span>(确认收货时间){{ orderDetail.order.confirmTime }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
<!-- 发货对话框 -->
|
|
<!-- 发货对话框 -->
|
|
|
<el-dialog title="发货" :visible.sync="shipDialogVisible">
|
|
<el-dialog title="发货" :visible.sync="shipDialogVisible">
|
|
|
<el-form ref="shipForm" :model="shipForm" status-icon label-position="left" label-width="100px" style='width: 400px; margin-left:50px;'>
|
|
<el-form ref="shipForm" :model="shipForm" status-icon label-position="left" label-width="100px" style='width: 400px; margin-left:50px;'>
|
|
@@ -88,21 +153,23 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<style>
|
|
<style>
|
|
|
- .demo-table-expand {
|
|
|
|
|
- font-size: 0;
|
|
|
|
|
- }
|
|
|
|
|
- .demo-table-expand label {
|
|
|
|
|
- width: 200px;
|
|
|
|
|
- color: #99a9bf;
|
|
|
|
|
- }
|
|
|
|
|
- .demo-table-expand .el-form-item {
|
|
|
|
|
- margin-right: 0;
|
|
|
|
|
- margin-bottom: 0;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
</style>
|
|
</style>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import { listOrder, shipOrder, refundOrder } from '@/api/order'
|
|
|
|
|
|
|
+import { listOrder, shipOrder, refundOrder, detailOrder } from '@/api/order'
|
|
|
|
|
+
|
|
|
|
|
+const statusMap = {
|
|
|
|
|
+ 101: '未付款',
|
|
|
|
|
+ 102: '用户取消',
|
|
|
|
|
+ 103: '系统取消',
|
|
|
|
|
+ 201: '已付款',
|
|
|
|
|
+ 202: '申请退款',
|
|
|
|
|
+ 203: '已退款',
|
|
|
|
|
+ 301: '已发货',
|
|
|
|
|
+ 401: '用户收货',
|
|
|
|
|
+ 402: '系统收货'
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
name: 'Order',
|
|
name: 'Order',
|
|
@@ -116,9 +183,17 @@ export default {
|
|
|
limit: 20,
|
|
limit: 20,
|
|
|
id: undefined,
|
|
id: undefined,
|
|
|
name: undefined,
|
|
name: undefined,
|
|
|
|
|
+ orderStatusArray: [],
|
|
|
sort: 'add_time',
|
|
sort: 'add_time',
|
|
|
order: 'desc'
|
|
order: 'desc'
|
|
|
},
|
|
},
|
|
|
|
|
+ statusMap,
|
|
|
|
|
+ orderDialogVisible: false,
|
|
|
|
|
+ orderDetail: {
|
|
|
|
|
+ order: {},
|
|
|
|
|
+ user: {},
|
|
|
|
|
+ orderGoods: []
|
|
|
|
|
+ },
|
|
|
shipForm: {
|
|
shipForm: {
|
|
|
orderId: undefined,
|
|
orderId: undefined,
|
|
|
shipChannel: undefined,
|
|
shipChannel: undefined,
|
|
@@ -135,17 +210,6 @@ export default {
|
|
|
},
|
|
},
|
|
|
filters: {
|
|
filters: {
|
|
|
orderStatusFilter(status) {
|
|
orderStatusFilter(status) {
|
|
|
- const statusMap = {
|
|
|
|
|
- '101': '未付款',
|
|
|
|
|
- '102': '已取消',
|
|
|
|
|
- '103': '已取消',
|
|
|
|
|
- '201': '已付款',
|
|
|
|
|
- '202': '申请退款',
|
|
|
|
|
- '203': '已退款',
|
|
|
|
|
- '301': '已发货',
|
|
|
|
|
- '401': '确认收货',
|
|
|
|
|
- '402': '确认收货'
|
|
|
|
|
- }
|
|
|
|
|
return statusMap[status]
|
|
return statusMap[status]
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -177,6 +241,12 @@ export default {
|
|
|
this.listQuery.page = val
|
|
this.listQuery.page = val
|
|
|
this.getList()
|
|
this.getList()
|
|
|
},
|
|
},
|
|
|
|
|
+ handleDetail(row) {
|
|
|
|
|
+ detailOrder(row.id).then(response => {
|
|
|
|
|
+ this.orderDetail = response.data.data
|
|
|
|
|
+ })
|
|
|
|
|
+ this.orderDialogVisible = true
|
|
|
|
|
+ },
|
|
|
handleShip(row) {
|
|
handleShip(row) {
|
|
|
this.shipForm.orderId = row.id
|
|
this.shipForm.orderId = row.id
|
|
|
this.shipForm.shipChannel = row.shipChannel
|
|
this.shipForm.shipChannel = row.shipChannel
|
|
@@ -232,7 +302,7 @@ export default {
|
|
|
this.downloadLoading = true
|
|
this.downloadLoading = true
|
|
|
import('@/vendor/Export2Excel').then(excel => {
|
|
import('@/vendor/Export2Excel').then(excel => {
|
|
|
const tHeader = ['订单ID', '订单编号', '用户ID', '订单状态', '是否删除', '收货人', '收货联系电话', '收货地址']
|
|
const tHeader = ['订单ID', '订单编号', '用户ID', '订单状态', '是否删除', '收货人', '收货联系电话', '收货地址']
|
|
|
- const filterVal = ['id', 'orderSn', 'userId', 'orderStatis', 'isDelete', 'consignee', 'mobile', 'address']
|
|
|
|
|
|
|
+ const filterVal = ['id', 'orderSn', 'userId', 'orderStatus', 'isDelete', 'consignee', 'mobile', 'address']
|
|
|
excel.export_json_to_excel2(tHeader, this.list, filterVal, '订单信息')
|
|
excel.export_json_to_excel2(tHeader, this.list, filterVal, '订单信息')
|
|
|
this.downloadLoading = false
|
|
this.downloadLoading = false
|
|
|
})
|
|
})
|