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
91cbc84b
Commit
91cbc84b
authored
Apr 20, 2020
by
jiaorz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
后台活动订单列表
parent
8c63caac
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
562 additions
and
1 deletion
+562
-1
orderActive.js
src/api/order/orderActive.js
+9
-0
index.js
src/router/index.js
+7
-1
index.vue
src/views/order/orderActiveInfo/index.vue
+546
-0
No files found.
src/api/order/orderActive.js
0 → 100644
View file @
91cbc84b
import
fetch
from
'utils/fetch'
;
export
function
page
(
query
)
{
return
fetch
({
url
:
'/api/order/order/activity/getAll'
,
method
:
'get'
,
params
:
query
});
}
\ No newline at end of file
src/router/index.js
View file @
91cbc84b
...
@@ -483,7 +483,13 @@ export const asyncRouterMap = [{
...
@@ -483,7 +483,13 @@ export const asyncRouterMap = [{
component
:
_import
(
'order/createOrder/index'
),
component
:
_import
(
'order/createOrder/index'
),
name
:
'创建租车订单'
,
name
:
'创建租车订单'
,
authority
:
'createOrder'
authority
:
'createOrder'
}
},
{
path
:
'orderActiveInfo'
,
component
:
_import
(
'order/orderActiveInfo/index'
),
name
:
'活动订单管理'
,
authority
:
'orderActiveInfo'
},
]
]
},
},
{
{
...
...
src/views/order/orderActiveInfo/index.vue
0 → 100644
View file @
91cbc84b
<
template
>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"filter-container"
ref=
"filter-container"
>
<el-form
ref=
"queryForm"
:model=
"listQuery"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"5"
>
<el-form-item
label=
"活动类型"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.type"
placeholder=
"请选择活动类型"
>
<el-option
:key=
"null"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
:key=
"1"
label=
"优惠券"
:value=
"1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"订单号"
>
<el-input
v-model=
"listQuery.no"
type=
"text"
placeholder=
"请输入订单号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"listQuery.phone"
placeholder=
"请输入手机号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"订单状态"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.status"
placeholder=
"请选择订单状态"
>
<el-option
:key=
"null"
label=
"全部"
:value=
"null"
></el-option>
<el-option
:key=
"2"
label=
"取消"
:value=
"2"
></el-option>
<el-option
:key=
"3"
label=
"待付款"
:value=
"3"
></el-option>
<el-option
:key=
"6"
label=
"已完成"
:value=
"6"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label=
"订单时间"
>
<el-date-picker
v-model=
"listQuery.startTime"
type =
"date"
placeholder =
"请输入开始时间"
></el-date-picker>
<span>
——
</span>
<el-date-picker
v-model=
"listQuery.endTime"
type =
"date"
placeholder =
"请输入结束时间"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"delete"
@
click=
"clearSearch"
>
清除搜索
</el-button>
<!--
<el-button
class=
"filter-item"
type=
"primary"
@
click=
"excel"
>
导出表格
</el-button>
-->
</div>
<el-table
:key=
"tableKey"
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
label=
"ID"
width=
"70"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"订单号/创建订单时间"
width=
"200"
>
<
template
scope=
"scope"
>
<p>
{{
scope
.
row
.
orderNo
}}
</p>
<p>
{{
scope
.
row
.
orderTime
}}
</p>
</
template
>
</el-table-column>
<el-table-column
width=
"200"
align=
"center"
label=
"用户ID/姓名"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
userId
}}
</span>
<br/>
<span>
{{
scope
.
row
.
realName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"200"
align=
"center"
label=
"手机号"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
mobile
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"200"
align=
"center"
label=
"所属活动"
>
<
template
scope=
"scope"
>
<span
v-if=
"scope.row.type == '1'"
>
超值预售卡
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"商品规格"
width=
"200"
>
<
template
scope=
"scope"
>
<p>
面值:
{{
scope
.
row
.
productSpecs
}}
</p>
</
template
>
</el-table-column>
<el-table-column
width=
"130"
align=
"center"
label=
"单价(元)"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
goodsAmount
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"100"
align=
"center"
label=
"数量"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
number
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"150"
align=
"center"
label=
"实付金额(元)"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
realAmount
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"200"
align=
"center"
label=
"订单状态"
>
<
template
scope=
"scope"
>
<span
v-if=
"scope.row.status == '2'"
>
取消
</span>
<span
v-if=
"scope.row.status == '3'"
>
待付款
</span>
<span
v-if=
"scope.row.status == '6'"
>
已完成
</span>
</
template
>
</el-table-column>
<!-- <el-table-column align="center" label="操作" >
<template scope="scope">
<el-button size="small" type="text" @click="handleBuy(scope.row)">用户详情</el-button>
</template>
</el-table-column> -->
</el-table>
<div
v-show=
"!listLoading"
class=
"pagination-container"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
<!-- 用户详细信息窗口-->
<el-dialog
title=
"用户详情"
:visible
.
sync=
"detailsDialogFormVisible"
type=
"text"
label-width=
"95px"
class=
"user-list-dialog"
>
<el-form>
<el-row>
<el-form-item
label=
"基础信息"
>
<span
v-if=
"userDetails.status!=1"
>
(状态-正常)
</span>
<span
v-if=
"userDetails.status==1"
>
(状态-已禁用)
</span>
</el-form-item>
</el-row>
<el-row
style=
"border-bottom: 1px dashed #ccc;padding: 10px 0;"
>
<el-col
:span=
"3"
>
<div
class=
"demo-type"
>
<img
:src=
"userDetails.headimgurl"
style=
"width: 80px;border-radius: 50%;"
/>
</div>
</el-col>
<el-col
:span=
"18"
>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"用户Id:"
>
<span>
{{userDetails.userId}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"昵称:"
>
<span>
{{userDetails.nickName}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"手机号:"
>
<span>
{{userDetails.username}}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"注册终端:"
>
<span
v-if=
"userDetails.channel == 1"
>
安卓
</span>
<span
v-else-if=
"userDetails.channel == 2"
>
小程序
</span>
<span
v-else-if=
"userDetails.channel == 3"
>
ios
</span>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"注册时间:"
>
<span>
{{!!userDetails.createTime ? timestamp(new Date(userDetails.createTime*1000)) : ''}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"9"
>
<el-form-item
label=
"最近登录时间:"
>
<span>
{{!!userDetails.lastTime ? timestamp(new Date(userDetails.lastTime)): ''}}
</span>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row>
<el-form-item
label=
"实名认证状态"
>
<span
v-if=
"!statusBoolean"
>
(状态-未认证)
</span>
<span
v-if=
"statusBoolean"
>
(状态-已认证)
</span>
</el-form-item>
</el-row>
<el-row
style=
"border-bottom: 1px dashed #ccc;padding-bottom: 10px;"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"真实姓名: "
>
<span>
{{userDetails.realName}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"身份证号: "
>
<span>
{{userDetails.idNumber}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"性别: "
>
<span>
{{userDetails.sex == 1 ? '女' : '男'}}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div
style=
"margin: 20px 0;"
><span
style=
"font-size: 16px;font-weight: bold;"
>
会员信息
</span></div>
</el-row>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"会员类型:"
>
<span>
{{userDetails.memberName}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"有效期:"
>
<span>
{{userDetails.validTime == '0' ? '永久' : '无'}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"充值次数:"
>
<span>
{{!!userDetails.buyCount ? userDetails.buyCount+'次' : ''}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"加入时间:"
>
<span>
{{!!userDetails.timeOfMembership ? timestamp(new Date(userDetails.timeOfMembership)) :''}}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row
style=
"border-bottom: 1px dashed #ccc;padding-bottom: 10px;"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"最近充值时间:"
>
<span>
{{userDetails.recentRecharge}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"赠送总天数:"
>
<span>
{{userDetails.totalNumber}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"剩余总天数:"
>
<span>
{{userDetails.rentFreeDays}}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div
style=
"margin: 20px 0;"
><span
style=
"font-size: 16px;font-weight: bold;"
>
用户来源
</span></div>
</el-row>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"来源:"
>
<span>
{{userDetails.source == 0 ? '自来' : '用户邀请'}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"邀请人账号:"
>
<span>
{{userDetails.inviter}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属地区:"
>
<span>
{{userDetails.cityName}}
</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"detailsDialogFormVisible = false"
>
关 闭
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
page
}
from
'api/order/orderActive'
import
{
mapGetters
}
from
'vuex'
import
rsCode
from
'../../../utils/rsCode'
// import dataFormattor from '../../../utils/dataFormattor'
import
{
formatDate
}
from
'utils/dateFormattor'
export
default
{
name
:
'branchCompanyStock'
,
data
()
{
return
{
detailsDialogFormVisible
:
false
,
//用户信息弹窗
userDetails
:{},
//用户信息
statusBoolean
:
false
,
//实名认证
form
:
{
id
:
null
,
companyId
:
null
,
companyName
:
null
,
name
:
null
,
tel
:
null
,
count
:
null
,
state
:
null
},
rules
:
{
},
statistics
:
[],
isStatistics
:
true
,
list
:
null
,
total
:
null
,
listLoading
:
true
,
listQuery
:
{
page
:
1
,
limit
:
20
,
type
:
undefined
,
no
:
undefined
,
phone
:
undefined
,
status
:
null
,
startTime
:
undefined
,
endTime
:
undefined
,
startTime
:
null
,
name
:
null
},
createTime
:
null
,
aplyTime
:
null
,
dialogFormVisible
:
false
,
dialogStatus
:
''
,
btn_del
:
true
,
btn_buy
:
true
,
btn_cancel
:
true
,
tableKey
:
0
,
query
:
null
,
}
},
created
()
{
let
t
=
this
this
.
query
=
localStorage
.
getItem
(
'orderActivityInfo'
)
this
.
listQuery
.
no
=
this
.
$route
.
query
.
id
||
null
if
(
this
.
query
!=
'null'
&&
this
.
query
)
{
let
queryJson
=
JSON
.
parse
(
this
.
query
)
if
(
queryJson
.
page
)
{
t
.
listQuery
.
page
=
queryJson
.
page
}
if
(
queryJson
.
limit
)
{
t
.
listQuery
.
limit
=
queryJson
.
limit
}
if
(
queryJson
.
no
)
{
t
.
listQuery
.
no
=
queryJson
.
no
}
if
(
queryJson
.
type
)
{
t
.
listQuery
.
type
=
queryJson
.
type
}
if
(
queryJson
.
status
)
{
t
.
listQuery
.
status
=
queryJson
.
status
}
if
(
queryJson
.
phone
)
{
t
.
listQuery
.
phone
=
queryJson
.
phone
}
if
(
queryJson
.
startTime
)
{
t
.
listQuery
.
startTime
=
queryJson
.
startTime
}
if
(
queryJson
.
endTime
)
{
t
.
listQuery
.
endTime
=
queryJson
.
endTime
}
}
this
.
getList
()
this
.
btn_del
=
this
.
elements
[
'branchCompany/stockApply:btn_delete'
]
},
computed
:
{
...
mapGetters
([
'elements'
]),
provinceRegions
()
{
return
getSonRegionByCodes
(
1
)
},
cityRegions
()
{
if
(
!
this
.
$utils
.
isInteger
(
this
.
form
.
addrProvince
))
{
return
null
}
return
getSonRegionByCodes
(
this
.
form
.
addrProvince
)
}
},
methods
:
{
//上级信息
changeCreate
(
val
){
!
val
?
this
.
clearSearch
()
:
''
},
changePay
(
val
){
!
val
?
this
.
clearSearch
()
:
''
},
timestamp
(
now
)
{
var
year
=
now
.
getFullYear
();
var
month
=
now
.
getMonth
()
+
1
;
var
date
=
now
.
getDate
();
var
Hours
=
now
.
getHours
();
var
Minutes
=
now
.
getMinutes
();
var
Seconds
=
now
.
getSeconds
();
month
=
month
.
toString
().
length
==
1
?
'0'
+
month
:
month
;
date
=
date
.
toString
().
length
==
1
?
'0'
+
date
:
date
;
Hours
=
Hours
.
toString
().
length
==
1
?
'0'
+
Hours
:
Hours
;
Minutes
=
Minutes
.
toString
().
length
==
1
?
'0'
+
Minutes
:
Minutes
;
Seconds
=
Seconds
.
toString
().
length
==
1
?
'0'
+
Seconds
:
Seconds
;
return
year
+
"-"
+
month
+
"-"
+
date
+
' '
+
Hours
+
':'
+
Minutes
+
":"
+
Seconds
},
excel
()
{
this
.
listQuery
.
isExport
=
true
;
var
u
=
navigator
.
userAgent
,
app
=
navigator
.
appVersion
;
orderMemberExcel
(
this
.
listQuery
,{
responseType
:
'arraybuffer'
}).
then
(
res
=>
{
this
.
listQuery
.
isExport
=
false
;
const
content
=
res
const
blob
=
new
Blob
([
content
],
{
type
:
"application/vnd.ms-excel"
})
const
fileName
=
this
.
timestamp
(
new
Date
())
+
'会员订单列表.xlsx'
if
(
u
.
indexOf
(
'Edge'
)
>
-
1
){
window
.
navigator
.
msSaveBlob
(
blob
,
fileName
)
console
.
log
(
'ie'
);
}
else
{
const
elink
=
document
.
createElement
(
'a'
)
elink
.
download
=
fileName
elink
.
style
.
display
=
'none'
elink
.
href
=
URL
.
createObjectURL
(
blob
)
document
.
body
.
appendChild
(
elink
)
elink
.
click
()
URL
.
revokeObjectURL
(
elink
.
href
)
// 释放URL 对象
document
.
body
.
removeChild
(
elink
)
console
.
log
(
'fei ie'
);
}
})
},
handleBuy
(
row
)
{
this
.
detailsDialogFormVisible
=
true
;
user_info
(
row
.
userId
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
userDetails
=
data
.
data
this
.
userDetails
.
recentRecharge
=
!!
row
.
payTime
?
this
.
timestamp
(
new
Date
(
row
.
payTime
))
:
''
this
.
getBoolean
(
this
.
userDetails
.
certificationStatus
)
}
})
},
getBoolean
(
bool
)
{
if
(
bool
===
'1'
)
{
this
.
statusBoolean
=
true
}
},
handleFilter
()
{
this
.
listQuery
.
page
=
1
this
.
$refs
.
queryForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
getList
()
}
else
{
return
false
}
})
},
clearSearch
()
{
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
type
:
undefined
,
no
:
undefined
,
phone
:
undefined
,
status
:
null
,
endTime
:
null
,
startTime
:
null
,
name
:
null
},
this
.
createTime
=
null
,
this
.
aplyTime
=
null
,
this
.
query
=
null
,
this
.
getList
()
},
getList
()
{
this
.
listLoading
=
true
if
(
!!
this
.
listQuery
.
startTime
&&
!!
this
.
listQuery
.
endTime
)
{
this
.
listQuery
.
startTime
=
this
.
timestamp
(
this
.
listQuery
.
startTime
)
this
.
listQuery
.
endTime
=
this
.
timestamp
(
this
.
listQuery
.
endTime
)
}
if
(
this
.
listQuery
)
{
localStorage
.
setItem
(
'orderActivityInfo'
,
JSON
.
stringify
(
this
.
listQuery
)
)
}
page
(
this
.
listQuery
).
then
(
response
=>
{
console
.
log
(
response
)
this
.
list
=
response
.
data
.
data
this
.
list
.
forEach
((
item
)
=>
{
if
(
item
.
productSpecs
!=
""
)
{
item
.
productSpecs
=
JSON
.
parse
(
item
.
productSpecs
).
price
}
});
this
.
total
=
response
.
data
.
totalCount
})
setTimeout
(()
=>
{
this
.
listLoading
=
false
},
300
)
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
}
}
}
</
script
>
<
style
>
.member
.el-dialog--small
{
width
:
500px
;
}
.user-list-dialog
.el-form-item
{
margin-bottom
:
0px
;
}
.el-card__body
{
overflow
:
hidden
;
padding
:
0
;
width
:
100%
;
display
:
inline-block
;
}
.num-title
{
display
:
inline-block
;
float
:
left
;
margin-right
:
40px
;
font-size
:
14px
;
}
.box-card
li
{
list-style
:
none
;
float
:
left
;
text-align
:
center
;
width
:
12.5%
;
font-size
:
14px
}
.box-card
li
p
:nth-child
(
1
)
{
font-weight
:
bold
;
color
:
#333
;
font-size
:
16px
;
}
.box-card
li
p
:nth-child
(
2
)
{
font-weight
:
bold
;
color
:
#666
;
}
</
style
>
\ No newline at end of file
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