Browse Source

2023-3-21

master
guoxing 2 years ago
parent
commit
647dcb7996
  1. 6
      mallplusui-web-admin/config/dev.env.js
  2. 84
      mallplusui-web-admin/src/api/orderStatistic.js
  3. 4
      mallplusui-web-admin/src/views/oms/order/index1.vue
  4. 544
      mallplusui-web-admin/src/views/oms/order/orderStatistic.vue

6
mallplusui-web-admin/config/dev.env.js

@ -4,7 +4,7 @@ const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
// BASE_API: '"http://mall.yyundong.com/adminapi"',
// BASE_API: '"http://192.168.3.9:8085"'
BASE_API: '"http://127.0.0.1:8085"'
BASE_API: '"http://mall.yyundong.com/adminapi"',
// BASE_API: '"http://192.168.3.20:8085"'
// BASE_API: '"http://127.0.0.1:8085"'
})

84
mallplusui-web-admin/src/api/orderStatistic.js

@ -0,0 +1,84 @@
import request from '@/utils/request'
export function getValueszd() {
return request({
url:'/oms/OmsOrder/getLocation',
method:'get'
})
}
export function getValueqhd(params) {
return request({
url:'/oms/OmsOrder/getPickupPoint',
method:'get',
params:params
})
}
export function fetchList(params) {
return request({
url:'/oms/OmsOrder/getOmsOrderLocationByPage',
method:'get',
params:params
})
}
export function closeOrder(params) {
return request({
url:'/oms/OmsOrder/update/close',
method:'post',
params:params
})
}
export function deleteOrder(id) {
return request({
url:'/oms/OmsOrder/delete'+id,
method:'get'
})
}
export function deliveryOrder(data) {
return request({
url:'/oms/OmsOrder/update/delivery',
method:'post',
data:data
});
}
export function getOrderDetail(id) {
return request({
url:'/oms/OmsOrder/'+id,
method:'get'
});
}
export function updateReceiverInfo(data) {
return request({
url:'/oms/OmsOrder/update/receiverInfo',
method:'post',
data:data
});
}
export function updateMoneyInfo(data) {
return request({
url:'/oms/OmsOrder/update/moneyInfo',
method:'post',
data:data
});
}
export function updateOrderNote(params) {
return request({
url:'/oms/OmsOrder/update/note',
method:'post',
params:params
})
}
export function orderData(params) {
return request({
url:'/oms/OmsOrder/data/count',
method:'get',
params:params
})
}

4
mallplusui-web-admin/src/views/oms/order/index1.vue

@ -399,7 +399,9 @@
return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
},
formatPayType(value) { //0->1->2->
if (value === 1) {
if (value === 0) {
return '未支付';
} else if (value === 1) {
return '支付宝';
} else if (value === 2) {
return '微信';

544
mallplusui-web-admin/src/views/oms/order/orderStatistic.vue

@ -2,7 +2,7 @@
<div class="app-container" style="position: relative; height: calc(100vh - 117px);">
<div class="container">
<el-tabs v-model="status" type="card" @tab-click="handleOrder">
<el-tab-pane name="0">
<!-- <el-tab-pane name="0">
<span slot="label">
<i class="el-icon-s-order"></i>
全部订单
@ -13,7 +13,7 @@
<i class="el-icon-bank-card"></i>
待付款
</span>
</el-tab-pane>
</el-tab-pane> -->
<el-tab-pane name="2">
<span slot="label">
<i class="el-icon-refrigerator"></i>
@ -50,12 +50,12 @@
已退款
</span>
</el-tab-pane> -->
<el-tab-pane name="15">
<!-- <el-tab-pane name="15">
<span slot="label">
<i class="el-icon-circle-close"></i>
已关闭
</span>
</el-tab-pane>
</el-tab-pane> -->
</el-tabs>
<!--工具栏-->
<el-card class="filter-container" shadow="never">
@ -70,30 +70,27 @@
<div style="margin-top: 15px">
<el-form :inline="true" :model="listQuery" size="small" label-width="140px">
<el-form-item label="所在地:">
<el-input v-model="listQuery.orderSn" class="input-width" placeholder="请选择所在地"></el-input>
</el-form-item>
<!-- <el-form-item label="订单分类:">
<el-select v-model="listQuery.orderType" class="input-width" placeholder="全部" clearable>
<el-option v-for="item in orderTypeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
<el-select v-model="listQuery.valueszd" @change="changeszd" placeholder="请选择所在地">
<el-option v-for="item in rangeszd" :key="item.id" :label="item.name"
:value="item.name">
</el-option>
</el-select>
</el-form-item> -->
</el-form-item>
<el-form-item label="取货点">
<el-input v-model="listQuery.orderSn" class="input-width" placeholder="请选择取货点"></el-input>
<el-form-item label="取货点:">
<el-select v-model="listQuery.valueqhd" @change="changeqhd" placeholder="请选择取货点">
<el-option v-for="item in rangeqhd" :key="item.id" :label="item.name"
:value="item.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="收货信息 :">
<el-form-item label="收货人电话:">
<el-input v-model="listQuery.receiverPhone" class="input-width" placeholder="收货人电话">
</el-input>
</el-form-item>
<!-- <el-form-item label="订单来源:">
<el-select v-model="listQuery.sourceType" class="input-width" placeholder="全部" clearable>
<el-option v-for="item in sourceTypeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item> -->
</el-form>
</div>
</el-card>
@ -119,23 +116,8 @@
<i class="el-icon-tickets"></i>
<span>数据列表</span>
</el-card>
<!-- <div class="batch-operate-container">
<el-checkbox v-model="printChecked" @change="batchSelection"
style="margin-left:23px; margin-right: 20px;"></el-checkbox>
<el-select v-model="batchHandle" @change="handlePrintOption" clearable placeholder="批量操作"
class="filter-item" style="width: 130px; margin-right: 8px;">
<el-option v-for="item in handleOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
<el-select v-model="batchExport" @change="handleExportOption" clearable placeholder="批量导出"
class="filter-item" style="width: 130px">
<el-option v-for="item in exportOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</div> -->
<div class="table-container">
<el-table ref="orderTable" :data="list" style="width: 100%;" @selection-change="handleSelectionChange"
v-loading="listLoading" border>
<el-table ref="orderTable" :data="list" style="width: 100%;" v-loading="listLoading" border>
<el-table-column type="selection" width="60" align="center"></el-table-column>
<el-table-column label="编号" width="80" align="center">
<template slot-scope="scope">
@ -177,17 +159,6 @@
{{ scope.row.payType | formatPayType }}
</template>
</el-table-column>
<!-- <el-table-column label="订单来源" width="120" align="center">
<template slot-scope="scope">
{{ scope.row.sourceType | formatSourceType }}
</template>
</el-table-column>
<el-table-column label="订单类型" width="120" align="center">
<template slot-scope="scope">
{{ scope.row.orderType | formatOrderType }}
</template>
</el-table-column> -->
<el-table-column label="订单状态" width="120" align="center">
<template slot-scope="scope">
{{ scope.row.status | formatStatus }}
@ -196,14 +167,6 @@
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button size="mini" @click="handleViewOrder(scope.$index, scope.row)">查看订单</el-button>
<!-- <el-button size="mini" @click="handleCloseOrder(scope.$index, scope.row)"
v-show="scope.row.status === 14">关闭订单</el-button> -->
<!-- <el-button size="mini" @click="handleDeliveryOrder(scope.$index, scope.row)"
v-show="scope.row.status === 2">订单发货</el-button> -->
<!-- <el-button size="mini" @click="handleViewLogistics(scope.$index, scope.row)"
v-show="scope.row.status > 2 || scope.row.status < 9">订单跟踪</el-button> -->
<!-- <el-button size="mini" type="danger" @click="handleDeleteOrder(scope.$index, scope.row)"
v-show="scope.row.status === 15">删除订单</el-button> -->
</template>
</el-table-column>
</el-table>
@ -225,10 +188,10 @@
} from '@/utils/index';
import {
fetchList,
closeOrder,
deleteOrder,
orderData
} from '@/api/order';
orderData,
getValueszd,
getValueqhd
} from '@/api/orderStatistic';
import {
formatDate
} from '@/utils/date';
@ -236,11 +199,10 @@
const defaultListQuery = {
pageNum: 1,
pageSize: 10,
status: 0,
orderSn: null,
receiverPhone: null,
createTimeStart: null,
createTimeEnd: null
status: 2,
valueszd: null,
valueqhd: null,
receiverPhone: null
};
export default {
@ -250,145 +212,34 @@
},
data() {
return {
delLoading: false,
status: '0',
orderType: '0',
createTime: '',
checkList: [],
printChecked: false,
batchHandle: '',
batchExport: '',
listContent: [],
rangeszd: [],
rangeqhd: [],
status: "2",
listQuery: Object.assign({}, defaultListQuery),
listLoading: true,
list: null,
total: null,
operateType: null,
multipleSelection: [],
closeOrder: {
dialogVisible: false,
content: null,
orderIds: []
},
statusOptions: [{
label: '待付款',
value: 12
},
{
label: '待发货',
value: 2
},
{
label: '已发货',
value: 3
},
{
label: '已完成',
value: 5
},
{
label: '申请退款',
value: 13
},
{
label: '已退款',
value: 14
},
{
label: '已关闭',
value: 15
}
],
orderTypeOptions: [{
label: '正常订单',
value: 1
},
{
label: '秒杀订单',
value: 6
},
{
value: 7,
label: '门店自取订单'
},
{
label: ' 拼团订单',
value: 2
},
{
label: '团购订单',
value: 3
},
{
label: '砍价订单',
value: 4
},
{
label: '积分订单',
value: 5
}
],
sourceTypeOptions: [{
label: '小程序订单',
value: 1
},
{
label: 'APP订单',
value: 4
},
{
label: 'h5订单',
value: 2
},
{
label: 'pc订单',
value: 3
}
],
operateOptions: [{
label: '批量发货',
value: 1
},
{
label: '关闭订单',
value: 2
},
{
label: '删除订单',
value: 3
}
],
logisticsDialogVisible: false,
handleOptions: [{
value: '',
label: '批量操作'
}, {
value: '0',
label: '批量打印'
}],
exportOptions: [{
value: '',
label: '批量导出'
}, {
value: '0',
label: '导出全部'
}, {
value: '1',
label: '导出选中'
}],
caculateInfo: {
orderCount: 0,
orderPay: 0,
memberCount: 0
}
},
};
},
created() {
this.$nextTick(() => {
this.getList();
this.orderDatas(0);
this.orderDatas(2);
});
getValueszd().then(response => {
console.log("getValueszd>>>>>", response.data)
// this.list = response.data.records;
this.rangeszd = response.data
});
},
filters: {
formatCreateTime(time) {
@ -406,34 +257,6 @@
return '积分兑换';
}
},
formatSourceType(value) { //0->PC1->app
if (value === 4) {
return '小程序';
} else if (value === 2) {
return 'h5订单';
} else if (value === 3) {
return 'PC订单';
} else if (value === 1) {
return 'android订单';
} else if (value === 5) {
return 'ios订单';
}
},
formatOrderType(value) {
if (value === 2) {
return '拼团订单';
} else if (value === 3) {
return '团购订单';
} else if (value === 6) {
return '秒杀订单';
} else if (value === 1) {
return '普通订单';
} else if (value === 4) {
return '砍价订单';
} else if (value === 5) {
return '积分订单';
}
},
formatStatus(value) { //0->1->2->3->4->5->
if (value === 12) {
return '待付款';
@ -467,25 +290,52 @@
}
}
},
methods: {
formatTime,
checkPermission,
changeszd(res) {
console.log("res1111111>>>>", res)
this.listQuery.valueszd = res
this.rangeqhd = []
this.listQuery.valueqhd = ""
const data = this.rangeszd.filter((item) => item.name == res)
getValueqhd({
id: data[0].id
}).then(response => {
console.log("getValueqhd>>>", response.data)
this.rangeqhd = response.data
});
},
changeqhd(res) {
console.log("res22222222>>>>", res)
this.listQuery.valueqhd = res
},
handleOrder(tab, event) {
this.listQuery.status = tab.name;
this.status = tab.name;
this.getList();
this.orderDatas(tab.name);
console.log("tab", tab)
},
handleResetSearch() {
this.listQuery = Object.assign({}, defaultListQuery);
this.listQuery = {
pageNum: 1,
pageSize: 10,
status:this.status,
valueszd: null,
valueqhd: null,
receiverPhone: null
};
},
handleSearchList() {
console.log("listQuery", this.listQuery)
this.listQuery.pageNum = 1;
this.getList();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleViewOrder(index, row) {
this.$router.push({
path: '/oms/orderDetail',
@ -494,75 +344,6 @@
}
});
},
handleCloseOrder(index, row) {
this.closeOrder.dialogVisible = true;
this.closeOrder.orderIds = [row.id];
},
handleDeliveryOrder(index, row) {
let listItem = this.covertOrder(row);
console.log("listItem", listItem)
this.$router.push({
path: '/oms/deliverOrderList',
query: {
list: [listItem]
}
});
},
handleViewLogistics(index, row) {
this.logisticsDialogVisible = true;
},
handleDeleteOrder(index, row) { //
let id = [];
id.push(row.id);
this.deleteOrder(id);
},
handleBatchOperate() {
if (this.multipleSelection == null || this.multipleSelection.length < 1) {
this.$message({
message: '请选择要操作的订单',
type: 'warning',
duration: 1000
});
return;
}
if (this.operateType === 1) {
//
let list = [];
for (let i = 0; i < this.multipleSelection.length; i++) {
if (this.multipleSelection[i].status === 1) {
list.push(this.covertOrder(this.multipleSelection[i]));
}
}
if (list.length === 0) {
this.$message({
message: '选中订单中没有可以发货的订单',
type: 'warning',
duration: 1000
});
return;
}
this.$router.push({
path: '/oms/deliverOrderList',
query: {
list: list
}
});
} else if (this.operateType === 2) {
//
this.closeOrder.orderIds = [];
for (let i = 0; i < this.multipleSelection.length; i++) {
this.closeOrder.orderIds.push(this.multipleSelection[i].id);
}
this.closeOrder.dialogVisible = true;
} else if (this.operateType === 3) {
//
let ids = [];
for (let i = 0; i < this.multipleSelection.length; i++) {
ids.push(this.multipleSelection[i].id);
}
this.deleteOrder(ids);
}
},
//
handleSizeChange(val) {
this.listQuery.pageNum = 1;
@ -574,37 +355,11 @@
this.listQuery.pageNum = val;
this.getList();
},
handleCloseOrderConfirm() {
if (this.closeOrder.content == null || this.closeOrder.content === '') {
this.$message({
message: '操作备注不能为空',
type: 'warning',
duration: 1000
});
return;
}
let params = new URLSearchParams();
params.append('ids', this.closeOrder.orderIds);
params.append('note', this.closeOrder.content);
closeOrder(params).then(response => {
this.closeOrder.orderIds = [];
this.closeOrder.dialogVisible = false;
this.getList();
this.$message({
message: '修改成功',
type: 'success',
duration: 1000
});
});
},
getList() {
this.listLoading = true;
if (this.listQuery.status == 0)
this.listQuery.status = null
if (this.listQuery.orderSn == "")
this.listQuery.orderSn = null
if (this.listQuery.receiverPhone == "")
this.listQuery.receiverPhone = null
@ -625,157 +380,6 @@
});
},
deleteOrder(id) {
this.$confirm('是否要进行该删除操作?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = new URLSearchParams();
params.append('id', id);
deleteOrder(params).then(response => {
this.$message({
message: '删除成功!',
type: 'success',
duration: 1000
});
this.getList();
});
});
},
covertOrder(order) {
let address = order.receiverRegion + order
.receiverDetailAddress;
let listItem = {
orderId: order.id,
orderSn: order.orderSn,
receiverName: order.receiverName,
receiverPhone: order.receiverPhone,
receiverPostCode: order.receiverPostCode,
address: address,
deliveryCompany: null,
deliverySn: null
};
return listItem;
},
beforeInit() {
this.url = 'api/yxStoreOrder';
const sort = 'id,desc';
this.params = {
page: this.page,
size: this.size,
sort: sort,
orderStatus: this.status,
orderType: this.orderType,
addTime: this.createTime,
listContent: this.listContent
};
const query = this.query;
const type = query.type;
return true;
},
getCaculateInfo() {},
clearCaculateInfo() {
this.caculateInfo = {
orderCount: 0,
orderPay: 0,
memberCount: 0
};
},
batchSelection(val) {
let rows = this.data;
if (val) {
rows.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row);
});
} else {
this.$refs.multipleTable.clearSelection();
}
},
handlePrintOption(val) {
switch (val) {
case '0':
this.getPrintList();
this.batchHandle = '';
break;
default:
break;
}
},
handleExportOption(val) {
let list = this.checkList;
this.page = 0;
this.size = 10000;
switch (val) {
case '0':
this.listContent = '';
this.beforeInit();
this.downloadMethod();
break;
case '1':
if (list.length == 0) {
this.$message({
message: '请选择订单',
type: 'warning'
});
} else {
this.listContent = [];
list.forEach(item => {
this.listContent.push(item.orderId);
});
this.listContent = JSON.stringify(this.listContent);
this.beforeInit();
this.downloadMethod();
}
break;
default:
break;
}
this.batchExport = '';
},
downloadMethod() {
this.beforeInit();
this.downloadLoading = true;
download(process.env.BASE_API + '/download', this.params)
.then(result => {
this.downloadFile(result, this.title + '数据', 'xlsx');
this.downloadLoading = false;
})
.catch(() => {
this.downloadLoading = false;
});
},
//
downloadFile(obj, name, suffix) {
const url = window.URL.createObjectURL(new Blob([obj]));
const link = document.createElement('a');
link.style.display = 'none';
link.href = url;
const fileName = parseTime(new Date()) + '-' + name + '.' + suffix;
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
},
getPrintList() {
let list = this.checkList;
if (list.length == 0) {
this.$message({
message: '请选择订单',
type: 'warning'
});
} else {
const _this = this.$refs.form5;
_this.dialog = true;
}
},
checkboxT(row, rowIndex) {
return row.id !== 1;
}
}
};
</script>

Loading…
Cancel
Save