3
3
<!-- 搜索工作栏 -->
4
4
<!-- TODO: inline 看看是不是需要; v-show= 那块逻辑还是要的 -->
5
5
<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 " >
7
7
<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 " >
11
11
<el-option v-for =" dict in dicData.searchType" v-bind =" dict" :key =" dict.value" />
12
12
</el-select >
13
13
</el-input >
14
14
</el-form-item >
15
15
</el-col >
16
16
<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" />
20
21
</el-select >
21
22
</el-form-item >
22
23
</el-col >
23
24
<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" />
27
29
</el-select >
28
30
</el-form-item >
29
31
</el-col >
30
32
<el-col :span =" 6" :xs =" 24" >
31
- <el-form-item label =" 订单来源" >
33
+ <el-form-item label =" 订单来源" prop = " terminal " >
32
34
<el-select v-model =" queryParams.terminal" clearable style =" width : 240px " >
33
35
<el-option v-for =" dict in this.getDictDatas(DICT_TYPE.TERMINAL)"
34
36
:key =" dict.value" :label =" dict.label" :value =" dict.value" />
35
37
</el-select >
36
38
</el-form-item >
37
39
</el-col >
38
40
<el-col :span =" 6" :xs =" 24" >
39
- <el-form-item label =" 支付方式" >
41
+ <el-form-item label =" 支付方式" prop = " payChannelCode " >
40
42
<el-select v-model =" queryParams.payChannelCode" clearable style =" width : 240px " >
41
43
<el-option v-for =" dict in this.getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE_TYPE)"
42
44
:key =" dict.value" :label =" dict.label" :value =" dict.value" />
43
45
</el-select >
44
46
</el-form-item >
45
47
</el-col >
46
48
<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']" />
50
53
</el-form-item >
51
54
</el-col >
52
55
<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 >
55
58
</el-col >
56
59
</el-form >
57
60
</el-row >
58
61
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" >
64
73
<el-table-column >
65
74
<template slot-scope="{ row }">
66
75
<el-row type =" flex" align =" middle" >
136
145
</el-table >
137
146
</el-tab-pane >
138
147
</el-tabs >
148
+ <!-- 分页组件 -->
149
+ <pagination v-show =" total > 0" :total =" total" :page.sync =" queryParams.pageNo" :limit.sync =" queryParams.pageSize"
150
+ @pagination =" getList" />
139
151
</div >
140
152
</template >
141
153
142
154
<script >
143
155
import { getOrderPage } from " @/api/mall/trade/order" ;
144
156
import { datePickerOptions } from " @/utils/constants" ;
157
+ import { DICT_TYPE , getDictDatas } from " @/utils/dict" ;
145
158
146
159
const dicData = {
147
160
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' },
166
167
],
167
168
}
168
169
export default {
@@ -183,45 +184,70 @@ const dicData = {
183
184
queryParams: {
184
185
pageNo: 1 ,
185
186
pageSize: 10 ,
186
- searchType: ' ddh' ,
187
- orderType: ' '
187
+ searchType: ' no' ,
188
+ searchValue: ' ' ,
189
+ type: null ,
190
+ status: null ,
191
+ payChannelCode: null ,
192
+ createTime: [],
188
193
},
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
+ }],
200
200
// 静态变量
201
201
datePickerOptions: datePickerOptions
202
202
}
203
203
},
204
204
created () {
205
205
this .getList ();
206
206
// 设置 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
+ }
213
213
},
214
214
methods: {
215
215
/** 查询列表 */
216
216
getList () {
217
217
this .loading = true ;
218
218
// 执行查询
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 => {
220
230
this .list = response .data .list ;
221
231
this .total = response .data .total ;
222
232
this .loading = false ;
223
233
});
224
234
},
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
+ },
225
251
goToDetail (row ) {
226
252
this .$router .push ({ path: ' /mall/trade/order/detail' , query: { orderNo: row .orderNo }})
227
253
}
0 commit comments