Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform-ui
Commits
df224199
Commit
df224199
authored
Nov 11, 2020
by
lixy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员订单统计、会员订单管理
parent
6ef7e744
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
550 additions
and
261 deletions
+550
-261
memeber.js
src/api/order/memeber.js
+24
-2
addMemberModal.vue
src/views/order/memberOrderInfo/addMemberModal.vue
+192
-0
index.vue
src/views/order/memberOrderInfo/index.vue
+226
-205
index.vue
src/views/order/orderStatistics/index.vue
+108
-54
No files found.
src/api/order/memeber.js
View file @
df224199
...
@@ -4,6 +4,28 @@ export function page(query) {
...
@@ -4,6 +4,28 @@ export function page(query) {
return
fetch
({
return
fetch
({
url
:
'/api/order/baseOrder/getOrderList'
,
url
:
'/api/order/baseOrder/getOrderList'
,
method
:
'get'
,
method
:
'get'
,
params
:
query
params
:
query
});
});
}
}
\ No newline at end of file
/**
* 会员等级
*/
export
function
memberLevels
(
query
)
{
return
fetch
({
url
:
'/api/admin/member/app/unauth/levels'
,
method
:
'get'
,
params
:
query
});
}
/**
* 会员录入
*/
export
function
createMemberOrder
(
query
)
{
return
fetch
({
url
:
'/api/order/orderMember/baseOrder/createOrder'
,
method
:
'post'
,
data
:
query
});
}
src/views/order/memberOrderInfo/addMemberModal.vue
0 → 100644
View file @
df224199
<
template
>
<el-dialog
title=
"新增订单"
:visible
.
sync=
"memberDialogVisible"
@
close=
"closePop"
:modal=
"false"
class=
"flex-aic vehicle-dialog"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"140px"
>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"用户手机号"
prop=
"phone"
>
<el-input
v-model=
"form.phone"
placeholder=
"输入用户手机号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"会员等级"
prop=
"memberIndex"
>
<el-select
class=
"filter-item"
v-model=
"form.memberIndex"
placeholder=
"请选择会员类型"
@
change=
"changeLevel"
>
<el-option
v-for=
"(item, index) in memeberList"
:key=
"item.level"
:label=
"item.name"
:value=
"index"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"免费天数"
>
<el-input
v-model=
"form.freeDay"
placeholder=
"输入免费天数"
type=
"number"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"实付金额"
prop=
"orderAmount"
>
<el-input
v-model=
"form.orderAmount"
placeholder=
"输入实付金额"
type=
"number"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"下单时间"
prop=
"payTime"
>
<el-date-picker
v-model=
"form.payTime"
:picker-options=
"pickerOptions"
type=
"datetime"
value-format=
"timestamp"
placeholder=
"选择下单时间"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleSubmit"
v-if=
"!isClick"
>
确 定
</el-button>
<el-button
type=
"primary"
style=
"opacity: 0.6;"
v-if=
"isClick"
>
确 定
</el-button>
<el-button
@
click=
"closePop"
>
关 闭
</el-button>
</div>
</el-dialog>
</
template
>
<
script
type=
"javascript"
>
import
{
memberLevels
,
createMemberOrder
}
from
'api/order/memeber'
export
default
{
name
:
'addMemberModal'
,
data
()
{
return
{
memberDialogVisible
:
false
,
form
:
{
memberIndex
:
undefined
,
// 会员等级index
memberLevel
:
undefined
,
// 会员等级
freeDay
:
undefined
,
// 当前会员等级免费天数
phone
:
undefined
,
// 用户手机号
orderAmount
:
undefined
,
// 实付金额
payTime
:
undefined
// 下单时间
},
pickerOptions
:
{
disabledDate
(
time
)
{
return
time
.
getTime
()
>
Date
.
now
();
}
},
isClick
:
false
,
// 是否已点击,防二次触发
selectedMember
:{},
// 当前已选会员等级
rules
:
{
phone
:
{
required
:
true
,
message
:
'请输入用户手机号'
,
trigger
:
'blur'
},
memberIndex
:
{
required
:
true
,
message
:
'请选择会员等级'
,
trigger
:
'change'
},
payTime
:
{
required
:
true
,
message
:
'请选择下单时间'
,
trigger
:
'change'
},
orderAmount
:
{
required
:
true
,
message
:
'请填写正确的实付金额,最多保留2位小数'
,
trigger
:
'blur'
,
transform
(
value
)
{
if
(
value
!==
null
&&
value
!==
''
&&
value
!==
undefined
)
{
if
(
String
(
value
).
trim
()
===
''
||
Number
(
value
)
<=
0
)
{
return
false
}
else
if
(
!
/^
\d
+
(\.\d{0,2})?
$/
.
test
(
value
))
{
return
false
}
else
{
return
parseFloat
(
value
).
toFixed
(
2
)
}
}
else
{
return
null
}
}
}
},
memeberList
:
[],
// 会员类型列表
}
},
created
()
{
this
.
getAllMemeberList
()
// 获取全部会员等级
},
mounted
()
{
this
.
memberDialogVisible
=
true
},
methods
:
{
/**
* 获取全部会员列表
*/
getAllMemeberList
(){
memberLevels
().
then
(
res
=>
{
this
.
memeberList
=
res
})
},
closePop
(){
this
.
$emit
(
'memberEvent'
,
false
)
},
/**
* 会员等级变化
*/
changeLevel
(
index
){
this
.
selectedMember
=
this
.
memeberList
[
index
]
this
.
form
.
memberLevel
=
this
.
selectedMember
.
level
this
.
form
.
freeDay
=
this
.
selectedMember
.
number
},
/**
* 确定
*/
handleSubmit
()
{
let
_this
=
this
const
set
=
this
.
$refs
;
if
(
this
.
isClick
)
{
return
;
}
this
.
isClick
=
true
;
setTimeout
(
function
(){
_this
.
isClick
=
false
},
2000
)
set
[
"form"
].
validate
((
valid
)
=>
{
let
params
=
{
phone
:
_this
.
form
.
phone
,
payTime
:
_this
.
form
.
payTime
,
orderAmount
:
_this
.
form
.
orderAmount
,
memberLevel
:
_this
.
selectedMember
.
level
,
memberLevelId
:
_this
.
selectedMember
.
id
}
if
(
valid
)
{
createMemberOrder
(
params
).
then
((
response
)
=>
{
if
(
response
.
status
==
200
)
{
this
.
$notify
({
title
:
"操作成功"
,
message
:
"添加成功"
,
type
:
"success"
,
duration
:
2000
,
});
setTimeout
(
function
(){
_this
.
$emit
(
"memberEvent"
,
true
);
},
1000
)
}
else
{
this
.
isClick
=
false
;
this
.
$notify
({
title
:
"失败"
,
message
:
response
.
message
,
type
:
"error"
,
duration
:
2000
,
});
}
});
}
})
}
}
}
</
script
>
src/views/order/memberOrderInfo/index.vue
View file @
df224199
This diff is collapsed.
Click to expand it.
src/views/order/orderStatistics/index.vue
View file @
df224199
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<div
class=
"filter-container"
>
<div
class=
"filter-container"
>
<el-form
ref=
"queryForm"
:model=
"listQuery"
label-width=
"100px"
>
<el-form
ref=
"queryForm"
:model=
"listQuery"
label-width=
"100px"
>
<el-row>
<el-row>
<el-col
:span=
"
6
"
>
<el-col
:span=
"
8
"
>
<el-form-item
label=
"统计时间:"
>
<el-form-item
label=
"统计时间:"
>
<el-date-picker
<el-date-picker
v-model=
"listQuery.time"
v-model=
"listQuery.time"
...
@@ -38,36 +38,38 @@
...
@@ -38,36 +38,38 @@
<span>
{{
scope
.
row
.
timeSlot
}}
</span>
<span>
{{
scope
.
row
.
timeSlot
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"普通会员购买量"
>
<
template
slot-scope=
"scope"
>
<el-table-column
align=
"center"
:label=
"item.name"
v-for=
"item in tableHead"
:key=
"item.name"
>
<span>
{{
scope
.
row
.
pNumber
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"支付金额(普通会员)"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
pAmount
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"黄金会员购买量"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
goldNumber
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"支付金额(黄金会员)"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
goldAmount
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"钻石会员购买量"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
hNumber
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"支付金额(钻石会员)"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
hAmount
}}
</span>
<span
v-for=
"(iitem, iindex) in scope.row.members"
:key=
"iindex"
v-if=
"iitem.level == item.level && item.type=='number'"
>
{{
iitem
.
number
}}
</span>
<span
v-for=
"(iitem, iindex) in scope.row.members"
:key=
"iindex"
v-if=
"iitem.level == item.level && item.type=='amount'"
>
{{
iitem
.
amount
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!-- <el-table-column align="center" label="支付金额(普通会员)">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.pAmount}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="黄金会员购买量">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.goldNumber}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="支付金额(黄金会员)">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.goldAmount}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="钻石会员购买量">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.hNumber}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="支付金额(钻石会员)">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{scope.row.hAmount}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
align=
"center"
label=
"总支付金额"
>
<el-table-column
align=
"center"
label=
"总支付金额"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
totalPayment
}}
</span>
<span>
{{
scope
.
row
.
totalPayment
}}
</span>
...
@@ -88,21 +90,22 @@
...
@@ -88,21 +90,22 @@
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
type=
"javascript"
>
import
{
orderStatistics
,
downloadExcel
}
from
'api/order/rentVehicle'
import
{
orderStatistics
,
downloadExcel
}
from
'api/order/rentVehicle'
import
{
memberLevels
}
from
'api/order/memeber'
export
default
{
export
default
{
created
()
{
created
()
{
this
.
getList
()
this
.
getAllMemeberList
()
// 获取全部会员等级
},
},
data
()
{
data
()
{
return
{
return
{
loading
:
false
,
loading
:
false
,
total
:
null
,
total
:
null
,
list
:
[],
list
:
[],
tableHead
:[],
//动态表头
scrollTop
:
''
,
scrollTop
:
''
,
// 统计时间筛选
// 统计时间筛选
listQuery
:
{
listQuery
:
{
time
:
'null'
,
type
:
'1'
,
type
:
'1'
,
startTime
:
null
,
startTime
:
null
,
endTime
:
null
,
endTime
:
null
,
...
@@ -129,6 +132,28 @@ export default {
...
@@ -129,6 +132,28 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
/**
* 获取全部会员列表
*/
getAllMemeberList
(){
memberLevels
().
then
(
res
=>
{
let
arr
=
[]
res
.
map
(
function
(
item
){
arr
.
push
({
name
:
item
.
name
+
'购买量'
,
level
:
item
.
level
,
type
:
'number'
})
arr
.
push
({
name
:
'支付金额('
+
item
.
name
+
")"
,
level
:
item
.
level
,
type
:
'amount'
})
})
this
.
tableHead
=
arr
this
.
getList
()
})
},
//统计时间筛选
//统计时间筛选
changeTime
()
{
changeTime
()
{
!!
this
.
listQuery
.
time
[
0
]
!!
this
.
listQuery
.
time
[
0
]
...
@@ -177,37 +202,66 @@ export default {
...
@@ -177,37 +202,66 @@ export default {
this
.
listQuery
.
page
=
val
this
.
listQuery
.
page
=
val
this
.
getList
()
this
.
getList
()
},
},
// 数组去重
repeat
(
json
){
try
{
let
newJson
=
[];
for
(
var
i
=
0
;
i
<
json
.
length
;
i
++
){
let
flag
=
true
;
for
(
var
j
=
0
;
j
<
newJson
.
length
;
j
++
){
if
(
newJson
[
j
].
tname
==
json
[
i
].
tname
)
{
flag
=
false
;
}
}
if
(
flag
){
//判断是否重复
newJson
.
push
(
json
[
i
]);
}
}
return
newJson
}
catch
(
err
){
console
.
log
(
err
)
}
},
//列表
//列表
getList
()
{
getList
()
{
let
_this
=
this
let
params
=
{}
let
params
=
{}
this
.
loading
=
true
this
.
loading
=
true
let
tableHead
=
this
.
tableHead
orderStatistics
(
this
.
listQuery
).
then
(
data
=>
{
orderStatistics
(
this
.
listQuery
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
if
(
data
.
status
==
200
)
{
data
.
data
.
list
.
forEach
(
element
=>
{
for
(
let
i
in
element
.
members
)
{
// tableHead.map(function(item){
if
(
element
.
members
[
i
].
level
==
1
)
{
// data.data.list.forEach(element => {
element
.
pAmount
=
element
.
members
[
i
].
amount
// let listArr = []
element
.
plevel
=
element
.
members
[
i
].
level
// element.members.map(function(iitem){
element
.
pMemberName
=
// // if(item.level == iitem.level){
element
.
members
[
i
].
memberName
// listArr.push({level: iitem.level, tnumber: iitem.number, tamount: iitem.amount})
element
.
pNumber
=
element
.
members
[
i
].
number
// // }
}
else
if
(
element
.
members
[
i
].
level
==
2
)
{
// })
element
.
goldAmount
=
element
.
members
[
i
].
amount
// element.listArr = listArr
element
.
goldlevel
=
element
.
members
[
i
].
level
// })
element
.
goldMemberName
=
// })
element
.
members
[
i
].
memberName
// debugger
element
.
goldNumber
=
element
.
members
[
i
].
number
// data.data.list.forEach(element => {
}
else
if
(
element
.
members
[
i
].
level
==
3
)
{
// tableHead.map(function(item){
element
.
hAmount
=
element
.
members
[
i
].
amount
// let p = {tname: item.name, tvalue: 0}
element
.
hlevel
=
element
.
members
[
i
].
level
// element.members.map(function(iitem){
element
.
hMemberName
=
// if(item.level == iitem.level){
element
.
members
[
i
].
memberName
// p = {tname: item.name, tvalue: item.type == 'number'?iitem.number : iitem.amount}
element
.
hNumber
=
element
.
members
[
i
].
number
// }
}
// })
}
// listArr.push(p)
})
// })
// element.listArr = _this.repeat(listArr)
// })
this
.
total
=
data
.
data
.
total
this
.
total
=
data
.
data
.
total
// console.log(listArr)
console
.
log
(
data
.
data
.
list
)
this
.
list
=
data
.
data
.
list
this
.
list
=
data
.
data
.
list
// this.listArr = listArr
}
}
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
loading
=
false
this
.
loading
=
false
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment