Skip to content

Commit 247712c

Browse files
committed
trade:前端订单管理,联调接口
1 parent 138aef5 commit 247712c

File tree

3 files changed

+90
-62
lines changed

3 files changed

+90
-62
lines changed

src/utils/dict.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ export const DICT_TYPE = {
6565
TRADE_AFTER_SALE_STATUS: 'trade_after_sale_status', // 售后 - 状态
6666
TRADE_AFTER_SALE_WAY: 'trade_after_sale_way', // 售后 - 方式
6767
TRADE_AFTER_SALE_TYPE: 'trade_after_sale_type', // 售后 - 类型
68+
TRADE_ORDER_TYPE: 'trade_order_type', // 订单 - 类型
69+
TRADE_ORDER_STATUS: 'trade_order_status', // 订单 - 状态
6870

6971
// ========== MALL - PROMOTION 模块 ==========
7072
PROMOTION_DISCOUNT_TYPE: 'promotion_discount_type', // 优惠类型

src/views/mall/trade/afterSale/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
4747
</el-row>
4848

49-
<!-- Tab 选项:真正的内容在 Lab -->
49+
<!-- Tab 选项:真正的内容在 Table -->
5050
<el-tabs v-model="activeTab" type="card" @tab-click="tabClick" style="margin-top: -40px;">
5151
<el-tab-pane v-for="tab in statusTabs" :key="tab.value" :label="tab.label" :name="tab.value" />
5252
</el-tabs>
@@ -100,7 +100,7 @@
100100
<script>
101101
import { getAfterSalePage } from "@/api/mall/trade/afterSale";
102102
import { datePickerOptions } from "@/utils/constants";
103-
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
103+
import { DICT_TYPE, getDictDatas } from "@/utils/dict";
104104
105105
export default {
106106
name: "AfterSale",

src/views/mall/trade/order/index.vue

Lines changed: 86 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3,64 +3,73 @@
33
<!-- 搜索工作栏 -->
44
<!-- TODO: inline 看看是不是需要; v-show= 那块逻辑还是要的 -->
55
<el-row :gutter="20">
6-
<el-form :model="queryParams" label-width="68px" size="small">
6+
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
77
<el-col :span="6" :xs="24">
8-
<el-form-item label="搜索方式">
9-
<el-input style="width: 240px">
10-
<el-select v-model="queryParams.searchType" slot="prepend" clearable style="width: 100px">
8+
<el-form-item label="搜索方式" prop="searchValue">
9+
<el-input v-model="queryParams.searchValue" style="width: 240px">
10+
<el-select v-model="queryParams.searchType" slot="prepend" style="width: 100px">
1111
<el-option v-for="dict in dicData.searchType" v-bind="dict" :key="dict.value"/>
1212
</el-select>
1313
</el-input>
1414
</el-form-item>
1515
</el-col>
1616
<el-col :span="6" :xs="24">
17-
<el-form-item label="订单类型">
18-
<el-select v-model="queryParams.orderType" clearable style="width: 240px">
19-
<el-option v-for="dict in dicData.orderType" v-bind="dict" :key="dict.value"/>
17+
<el-form-item label="订单类型" prop="type">
18+
<el-select v-model="queryParams.type" clearable style="width: 240px">
19+
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.TRADE_ORDER_TYPE)"
20+
:key="dict.value" :label="dict.label" :value="dict.value"/>
2021
</el-select>
2122
</el-form-item>
2223
</el-col>
2324
<el-col :span="6" :xs="24">
24-
<el-form-item label="订单状态">
25-
<el-select v-model="queryParams.orderStatus" clearable style="width: 240px">
26-
<el-option v-for="dict in dicData.orderStatus" v-bind="dict" :key="dict.value"/>
25+
<el-form-item label="订单状态" prop="status">
26+
<el-select v-model="queryParams.status" clearable style="width: 240px">
27+
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.TRADE_ORDER_STATUS)"
28+
:key="dict.value" :label="dict.label" :value="dict.value"/>
2729
</el-select>
2830
</el-form-item>
2931
</el-col>
3032
<el-col :span="6" :xs="24">
31-
<el-form-item label="订单来源">
33+
<el-form-item label="订单来源" prop="terminal">
3234
<el-select v-model="queryParams.terminal" clearable style="width: 240px">
3335
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.TERMINAL)"
3436
:key="dict.value" :label="dict.label" :value="dict.value"/>
3537
</el-select>
3638
</el-form-item>
3739
</el-col>
3840
<el-col :span="6" :xs="24">
39-
<el-form-item label="支付方式">
41+
<el-form-item label="支付方式" prop="payChannelCode">
4042
<el-select v-model="queryParams.payChannelCode" clearable style="width: 240px">
4143
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE_TYPE)"
4244
:key="dict.value" :label="dict.label" :value="dict.value"/>
4345
</el-select>
4446
</el-form-item>
4547
</el-col>
4648
<el-col :span="6" :xs="24">
47-
<el-form-item label="下单时间">
48-
<el-date-picker v-model="queryParams.date" type="daterange" range-separator=""
49-
start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="datePickerOptions" style="width: 240px"/>
49+
<el-form-item label="下单时间" prop="createTime">
50+
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
51+
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
52+
:picker-options="datePickerOptions" :default-time="['00:00:00', '23:59:59']" />
5053
</el-form-item>
5154
</el-col>
5255
<el-col :span="6" :xs="24" style="line-height: 32px">
53-
<el-button type="primary" icon="el-icon-search" size="mini">搜索</el-button>
54-
<el-button icon="el-icon-refresh" size="mini">重置</el-button>
56+
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
57+
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
5558
</el-col>
5659
</el-form>
5760
</el-row>
5861

59-
<!-- tab切换-->
60-
<el-tabs v-model="activeTabName" type="card">
61-
<el-tab-pane v-for="tabPane in tabPanes" :label="tabPane.text" :name="tabPane.name">
62-
<!-- table -->
63-
<el-table :data="list" :show-header="false" class="order-table">
62+
<!-- 操作工具栏 -->
63+
<el-row :gutter="10" class="mb8">
64+
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
65+
</el-row>
66+
67+
<!-- tab切换 -->
68+
<!-- TODO @小程:看看能不能往上挪 -40px,和【隐藏搜索】【刷新】对齐 -->
69+
<el-tabs v-model="activeTab" type="card" @tab-click="tabClick">
70+
<el-tab-pane v-for="tab in statusTabs" :key="tab.value" :label="tab.label" :name="tab.value">
71+
<!-- 列表 -->
72+
<el-table v-loading="loading" :data="list" :show-header="false" class="order-table">
6473
<el-table-column>
6574
<template slot-scope="{ row }">
6675
<el-row type="flex" align="middle">
@@ -136,33 +145,25 @@
136145
</el-table>
137146
</el-tab-pane>
138147
</el-tabs>
148+
<!-- 分页组件 -->
149+
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
150+
@pagination="getList"/>
139151
</div>
140152
</template>
141153

142154
<script>
143155
import { getOrderPage } from "@/api/mall/trade/order";
144156
import { datePickerOptions } from "@/utils/constants";
157+
import { DICT_TYPE, getDictDatas } from "@/utils/dict";
145158
146159
const dicData = {
147160
searchType: [
148-
{ label: '订单号', value: 'ddh' },
149-
{ label: '交易流水号', value: 'jylsh' },
150-
{ label: '订单备注', value: 'ddbz' },
151-
{ label: '收货人姓名', value: 'shrxm' },
152-
{ label: '商品名称', value: 'spmc' },
153-
{ label: '收货人电话', value: 'shrdh' },
154-
{ label: '会员昵称', value: 'hync' },
155-
{ label: '商品编号', value: 'spbh' }
156-
],
157-
orderStatus: [
158-
{ label: '全部', value: 'qb' },
159-
{ label: '待支付', value: 'dzf' },
160-
{ label: '待发货', value: 'dfh' },
161-
{ label: '已发货', value: 'yfh' },
162-
{ label: '已收货', value: 'ysh' },
163-
{ label: '已完成', value: 'ywc' },
164-
{ label: '已关闭', value: 'ygb' },
165-
{ label: '退款中', value: 'tkz' }
161+
{ label: '订单号', value: 'no' },
162+
{ label: '会员编号', value: 'userId' },
163+
{ label: '会员昵称', value: 'userNickname' },
164+
{ label: '会员手机号', value: 'userMobile' },
165+
{ label: '收货人姓名', value: 'receiverName' },
166+
{ label: '收货人手机号码', value: 'receiverMobile' },
166167
],
167168
}
168169
export default {
@@ -183,45 +184,70 @@ const dicData = {
183184
queryParams: {
184185
pageNo: 1,
185186
pageSize: 10,
186-
searchType: 'ddh',
187-
orderType: ''
187+
searchType: 'no',
188+
searchValue: '',
189+
type: null,
190+
status: null,
191+
payChannelCode: null,
192+
createTime: [],
188193
},
189-
activeTabName: 'all',
190-
tabPanes: [
191-
{ text: '全部', name: 'all' },
192-
{ text: '待支付', name: 'toBePay' },
193-
{ text: '待发货', name: 'toBeSend' },
194-
{ text: '已发货', name: 'send' },
195-
{ text: '已收货', name: 'received' },
196-
{ text: '已完成', name: 'finished' },
197-
{ text: '已关闭', name: 'closed' },
198-
{ text: '退款中', name: 'refund' }
199-
],
194+
// Tab 筛选
195+
activeTab: 'all',
196+
statusTabs: [{
197+
label: '全部',
198+
value: 'all'
199+
}],
200200
// 静态变量
201201
datePickerOptions: datePickerOptions
202202
}
203203
},
204204
created() {
205205
this.getList();
206206
// 设置 statuses 过滤
207-
// for (const dict of getDictDatas(DICT_TYPE.TRADE_AFTER_SALE_STATUS)) {
208-
// this.statusTabs.push({
209-
// label: dict.label,
210-
// value: dict.value
211-
// })
212-
// }
207+
for (const dict of getDictDatas(DICT_TYPE.TRADE_ORDER_STATUS)) {
208+
this.statusTabs.push({
209+
label: dict.label,
210+
value: dict.value
211+
})
212+
}
213213
},
214214
methods: {
215215
/** 查询列表 */
216216
getList() {
217217
this.loading = true;
218218
// 执行查询
219-
getOrderPage(this.queryParams).then(response => {
219+
getOrderPage({
220+
...this.queryParams,
221+
searchType: undefined,
222+
searchValue: undefined,
223+
no: this.queryParams.searchType === 'no' ? this.queryParams.searchValue : undefined,
224+
userId: this.queryParams.searchType === 'userId' ? this.queryParams.searchValue : undefined,
225+
userNickname: this.queryParams.searchType === 'userNickname' ? this.queryParams.searchValue : undefined,
226+
userMobile: this.queryParams.searchType === 'userMobile' ? this.queryParams.searchValue : undefined,
227+
receiverName: this.queryParams.searchType === 'receiverName' ? this.queryParams.searchValue : undefined,
228+
receiverMobile: this.queryParams.searchType === 'receiverMobile' ? this.queryParams.searchValue : undefined,
229+
}).then(response => {
220230
this.list = response.data.list;
221231
this.total = response.data.total;
222232
this.loading = false;
223233
});
224234
},
235+
/** 搜索按钮操作 */
236+
handleQuery() {
237+
this.queryParams.pageNo = 1;
238+
this.activeTab = this.queryParams.status ? this.queryParams.status : 'all'; // 处理 tab
239+
this.getList();
240+
},
241+
/** 重置按钮操作 */
242+
resetQuery() {
243+
this.resetForm("queryForm");
244+
this.handleQuery();
245+
},
246+
/** tab 切换 */
247+
tabClick(tab) {
248+
this.queryParams.status = tab.name === 'all' ? undefined : tab.name;
249+
this.getList();
250+
},
225251
goToDetail (row) {
226252
this.$router.push({ path: '/mall/trade/order/detail', query: { orderNo: row.orderNo }})
227253
}

0 commit comments

Comments
 (0)