Commit 0993ed17 authored by Junling Bu's avatar Junling Bu
Browse files

feat[litemall-admin, litemall-admin-api, litemall-core]: 管理后台发货时快递公司选择框

parent 6cb57921
...@@ -5,6 +5,9 @@ import org.apache.commons.logging.LogFactory; ...@@ -5,6 +5,9 @@ import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc; import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.admin.service.AdminOrderService; import org.linlinjava.litemall.admin.service.AdminOrderService;
import org.linlinjava.litemall.core.express.ExpressService;
import org.linlinjava.litemall.core.notify.NotifyService;
import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -22,6 +25,8 @@ public class AdminOrderController { ...@@ -22,6 +25,8 @@ public class AdminOrderController {
@Autowired @Autowired
private AdminOrderService adminOrderService; private AdminOrderService adminOrderService;
@Autowired
private ExpressService expressService;
/** /**
* 查询订单 * 查询订单
...@@ -47,6 +52,16 @@ public class AdminOrderController { ...@@ -47,6 +52,16 @@ public class AdminOrderController {
return adminOrderService.list(userId, orderSn, orderStatusArray, page, limit, sort, order); return adminOrderService.list(userId, orderSn, orderStatusArray, page, limit, sort, order);
} }
/**
* 查询物流公司
*
* @return
*/
@GetMapping("/channel")
public Object channel() {
return ResponseUtil.ok(expressService.getVendors());
}
/** /**
* 订单详情 * 订单详情
* *
...@@ -99,5 +114,4 @@ public class AdminOrderController { ...@@ -99,5 +114,4 @@ public class AdminOrderController {
public Object reply(@RequestBody String body) { public Object reply(@RequestBody String body) {
return adminOrderService.reply(body); return adminOrderService.reply(body);
} }
} }
...@@ -43,3 +43,10 @@ export function replyComment(data) { ...@@ -43,3 +43,10 @@ export function replyComment(data) {
data data
}) })
} }
export function listChannel(id) {
return request({
url: '/order/channel',
method: 'get'
})
}
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
<!-- 查询和其他操作 --> <!-- 查询和其他操作 -->
<div class="filter-container"> <div class="filter-container">
<el-input v-model="listQuery.userId" clearable class="filter-item" style="width: 200px;" placeholder="请输入用户ID"/> <el-input v-model="listQuery.userId" clearable class="filter-item" style="width: 200px;" placeholder="请输入用户ID" />
<el-input v-model="listQuery.orderSn" clearable class="filter-item" style="width: 200px;" placeholder="请输入订单编号"/> <el-input v-model="listQuery.orderSn" clearable class="filter-item" style="width: 200px;" placeholder="请输入订单编号" />
<el-select v-model="listQuery.orderStatusArray" multiple style="width: 200px" class="filter-item" placeholder="请选择订单状态"> <el-select v-model="listQuery.orderStatusArray" multiple style="width: 200px" class="filter-item" placeholder="请选择订单状态">
<el-option v-for="(key, value) in statusMap" :key="key" :label="key" :value="value"/> <el-option v-for="(key, value) in statusMap" :key="key" :label="key" :value="value" />
</el-select> </el-select>
<el-button v-permission="['GET /admin/order/list']" class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查找</el-button> <el-button v-permission="['GET /admin/order/list']" class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查找</el-button>
<el-button :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">导出</el-button> <el-button :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">导出</el-button>
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
<!-- 查询结果 --> <!-- 查询结果 -->
<el-table v-loading="listLoading" :data="list" element-loading-text="正在查询中。。。" border fit highlight-current-row> <el-table v-loading="listLoading" :data="list" element-loading-text="正在查询中。。。" border fit highlight-current-row>
<el-table-column align="center" min-width="100" label="订单编号" prop="orderSn"/> <el-table-column align="center" min-width="100" label="订单编号" prop="orderSn" />
<el-table-column align="center" label="用户ID" prop="userId"/> <el-table-column align="center" label="用户ID" prop="userId" />
<el-table-column align="center" label="订单状态" prop="orderStatus"> <el-table-column align="center" label="订单状态" prop="orderStatus">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -25,21 +25,21 @@ ...@@ -25,21 +25,21 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="订单金额" prop="orderPrice"/> <el-table-column align="center" label="订单金额" prop="orderPrice" />
<el-table-column align="center" label="支付金额" prop="actualPrice"/> <el-table-column align="center" label="支付金额" prop="actualPrice" />
<el-table-column align="center" label="支付时间" prop="payTime"/> <el-table-column align="center" label="支付时间" prop="payTime" />
<el-table-column align="center" label="物流单号" prop="shipSn"/> <el-table-column align="center" label="物流单号" prop="shipSn" />
<el-table-column align="center" label="物流渠道" prop="shipChannel"/> <el-table-column align="center" label="物流渠道" prop="shipChannel" />
<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 v-permission="['GET /admin/order/detail']" type="primary" size="mini" @click="handleDetail(scope.row)">详情</el-button> <el-button v-permission="['GET /admin/order/detail']" type="primary" size="mini" @click="handleDetail(scope.row)">详情</el-button>
<el-button v-permission="['POST /admin/order/ship']" v-if="scope.row.orderStatus==201" type="primary" size="mini" @click="handleShip(scope.row)">发货</el-button> <el-button v-if="scope.row.orderStatus==201" v-permission="['POST /admin/order/ship']" type="primary" size="mini" @click="handleShip(scope.row)">发货</el-button>
<el-button v-permission="['POST /admin/order/refund']" v-if="scope.row.orderStatus==202||scope.row.orderStatus==204" type="primary" size="mini" @click="handleRefund(scope.row)">退款</el-button> <el-button v-if="scope.row.orderStatus==202||scope.row.orderStatus==204" v-permission="['POST /admin/order/refund']" type="primary" size="mini" @click="handleRefund(scope.row)">退款</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -114,10 +114,12 @@ ...@@ -114,10 +114,12 @@
<el-dialog :visible.sync="shipDialogVisible" title="发货"> <el-dialog :visible.sync="shipDialogVisible" title="发货">
<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;">
<el-form-item label="快递公司" prop="shipChannel"> <el-form-item label="快递公司" prop="shipChannel">
<el-input v-model="shipForm.shipChannel"/> <el-select v-model="shipForm.shipChannel" placeholder="请选择">
<el-option v-for="item in channels" :key="item.code" :label="item.name" :value="item.code" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="快递编号" prop="shipSn"> <el-form-item label="快递编号" prop="shipSn">
<el-input v-model="shipForm.shipSn"/> <el-input v-model="shipForm.shipSn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -130,7 +132,7 @@ ...@@ -130,7 +132,7 @@
<el-dialog :visible.sync="refundDialogVisible" title="退款"> <el-dialog :visible.sync="refundDialogVisible" title="退款">
<el-form ref="refundForm" :model="refundForm" status-icon label-position="left" label-width="100px" style="width: 400px; margin-left:50px;"> <el-form ref="refundForm" :model="refundForm" status-icon label-position="left" label-width="100px" style="width: 400px; margin-left:50px;">
<el-form-item label="退款金额" prop="refundMoney"> <el-form-item label="退款金额" prop="refundMoney">
<el-input v-model="refundForm.refundMoney" :disabled="true"/> <el-input v-model="refundForm.refundMoney" :disabled="true" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -143,7 +145,7 @@ ...@@ -143,7 +145,7 @@
</template> </template>
<script> <script>
import { detailOrder, listOrder, refundOrder, shipOrder } from '@/api/order' import { detailOrder, listOrder, listChannel, refundOrder, shipOrder } from '@/api/order'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import checkPermission from '@/utils/permission' // 权限判断函数 import checkPermission from '@/utils/permission' // 权限判断函数
...@@ -201,11 +203,13 @@ export default { ...@@ -201,11 +203,13 @@ export default {
refundMoney: undefined refundMoney: undefined
}, },
refundDialogVisible: false, refundDialogVisible: false,
downloadLoading: false downloadLoading: false,
channels: []
} }
}, },
created() { created() {
this.getList() this.getList()
this.getChannel()
}, },
methods: { methods: {
checkPermission, checkPermission,
...@@ -221,6 +225,11 @@ export default { ...@@ -221,6 +225,11 @@ export default {
this.listLoading = false this.listLoading = false
}) })
}, },
getChannel() {
listChannel().then(response => {
this.channels = response.data.data
})
},
handleFilter() { handleFilter() {
this.listQuery.page = 1 this.listQuery.page = 1
this.getList() this.getList()
......
...@@ -11,6 +11,7 @@ import org.springframework.util.Base64Utils; ...@@ -11,6 +11,7 @@ import org.springframework.util.Base64Utils;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -48,6 +49,10 @@ public class ExpressService { ...@@ -48,6 +49,10 @@ public class ExpressService {
return null; return null;
} }
public List<Map<String, String>> getVendors() {
return properties.getVendors();
}
/** /**
* 获取物流信息 * 获取物流信息
* *
......
Supports Markdown
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