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
b1dc01e8
Commit
b1dc01e8
authored
Dec 09, 2019
by
guoyou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发布会设置
parent
a6222297
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1213 additions
and
0 deletions
+1213
-0
applyManagements.js
src/api/applyManagements.js
+75
-0
index.js
src/router/index.js
+33
-0
index.vue
src/views/conference/activeData/index.vue
+249
-0
applyList.vue
src/views/conference/apply/applyList.vue
+153
-0
awardSet.vue
src/views/conference/award/awardSet.vue
+456
-0
prizeLists.vue
src/views/conference/prizeList/prizeLists.vue
+247
-0
No files found.
src/api/applyManagements.js
View file @
b1dc01e8
...
...
@@ -30,4 +30,79 @@ export function changeStatus(id) {
url
:
'/api/app/admin/buy_vehicle/status/'
+
id
,
method
:
'POST'
,
});
}
// 报名列表
export
function
applyList
(
params
)
{
return
fetch
({
url
:
'api/activity/admin/activityLuckyDraw/page'
,
method
:
'POST'
,
data
:
params
});
}
// 报名列表导出
export
function
excel
(
query
)
{
return
fetch
({
url
:
'api/activity/admin/activityLuckyDraw/export'
,
method
:
'post'
,
data
:
query
,
responseType
:
'blob'
});
}
// 中奖列表
export
function
applyListWin
(
params
)
{
return
fetch
({
url
:
'/api/activity/admin/activityWinningRecord/page'
,
method
:
'POST'
,
data
:
params
});
}
// 中奖列表导出
export
function
excelWin
(
query
)
{
return
fetch
({
url
:
'/api/activity/admin/activityWinningRecord/export'
,
method
:
'post'
,
data
:
query
,
responseType
:
'blob'
});
}
// 活动数据
export
function
applyListActive
(
params
)
{
return
fetch
({
url
:
'/api/activity/admin/activityAttendanceRecord/page'
,
method
:
'POST'
,
data
:
params
});
}
// 活动数据
export
function
excelActive
(
query
)
{
return
fetch
({
url
:
'/api/activity/admin/activityAttendanceRecord/export'
,
method
:
'post'
,
data
:
query
,
responseType
:
'blob'
});
}
// 奖品设置
export
function
savePrize
(
query
)
{
return
fetch
({
url
:
'/api/activity/admin/activityPrize/save'
,
method
:
'post'
,
data
:
query
});
}
// 奖品详情
export
function
infoPrize
(
query
)
{
return
fetch
({
url
:
'api/activity/admin/activityPrize/list'
,
method
:
'get'
,
data
:
query
});
}
\ No newline at end of file
src/router/index.js
View file @
b1dc01e8
...
...
@@ -648,6 +648,39 @@ export const asyncRouterMap = [{
}
]
},
{
path
:
'/casual'
,
component
:
Layout
,
name
:
'发布会现金活动'
,
icon
:
'setting'
,
authority
:
'casual'
,
children
:
[
{
path
:
'index'
,
component
:
_import
(
'conference/activeData/index'
),
name
:
'活动数据'
,
authority
:
'index'
},
{
path
:
'prizeLists'
,
component
:
_import
(
'conference/prizeList/prizeLists'
),
name
:
'中奖列表'
,
authority
:
'prizeLists'
},
{
path
:
'applyList'
,
component
:
_import
(
'conference/apply/applyList'
),
name
:
'报名列表'
,
authority
:
'applyList'
},
{
path
:
'awardSet'
,
component
:
_import
(
'conference/award/awardSet'
),
name
:
'奖品设置'
,
authority
:
'awardSet'
}
]
},
{
path
:
'/applyManagements'
,
component
:
Layout
,
...
...
src/views/conference/activeData/index.vue
0 → 100644
View file @
b1dc01e8
<
template
>
<div
class=
"app-container calendar-list-container"
>
<el-form
:inline=
"true"
label-width=
"100px"
label-position=
"right"
>
<el-form-item
label=
"选择日期"
>
<el-date-picker
v-model=
"time"
type=
"daterange"
placeholder=
"选择日期范围"
@
change=
"changeTime"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"listQuery.phone"
placeholder=
"请输入手机号"
clearable
style=
"width:200px"
></el-input>
</el-form-item>
<el-form-item
label=
"状态"
>
<el-select
v-model=
"listQuery.status"
clearable
placeholder=
"请选择状态"
@
change=
"changeClass"
>
<el-option
v-for=
"item in options"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-button
type=
"primary"
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"primary"
@
click=
"clearSearch"
>
清空搜索
</el-button>
<el-button
type=
"primary"
:loading=
"excelLoading"
@
click=
"downloadExcel"
>
导出
</el-button>
</el-form>
<div
class=
"information"
>
<h4>
数据概况.
</h4>
<ul>
<li>
<p>
{{
information
.
attendNum
}}
</p>
<p>
参与人数(次)
</p>
</li>
<li>
<p>
{{
information
.
finishNum
}}
</p>
<p>
完成任务数(个)
</p>
</li>
<li>
<p>
{{
information
.
amount
}}
</p>
<p>
已发放现金总额(次)
</p>
</li>
</ul>
</div>
<el-table
:data=
"tableData"
border
header-align=
"center"
v-loading=
"loadingTab"
style=
"margin-top:20px"
>
<el-table-column
label=
"序号"
align=
"center"
width=
"70"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
$index
+
(
listQuery
.
page
-
1
)
*
listQuery
.
limit
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"userName"
label=
"用户名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"phone"
label=
"电话"
align=
"center"
></el-table-column>
<el-table-column
prop=
"positionName"
label=
"身份"
align=
"center"
></el-table-column>
<el-table-column
prop=
"status"
label=
"状态"
align=
"center"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
status
==
1
?
'未完成'
:
'已完成'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"amount"
label=
"当前金额(元)"
align=
"center"
></el-table-column>
<el-table-column
prop=
"crtTime"
label=
"邀请人数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"prizes"
label=
"抽奖礼品"
align=
"center"
></el-table-column>
<el-table-column
prop=
"attendTime"
label=
"参加时间"
align=
"center"
>
<
template
scope=
"scope"
>
<span>
{{
timeChange
(
scope
.
row
.
attendTime
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
<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"
style=
"margin-top:20px"
></el-pagination>
</div>
</template>
<
script
>
import
{
formatDate
}
from
'utils/dateFormattor'
import
{
applyListActive
,
excelActive
}
from
'api/applyManagements'
export
default
{
created
()
{
this
.
getList
()
},
data
()
{
return
{
information
:
{},
excelLoading
:
false
,
loadingTab
:
false
,
tableData
:
[],
time
:
''
,
total
:
null
,
//总页数
options
:
[
{
id
:
''
,
name
:
'全部'
},
{
id
:
0
,
name
:
'未完成'
},
{
id
:
1
,
name
:
'已完成'
}
],
listQuery
:
{
page
:
1
,
limit
:
10
,
startTime
:
null
,
endTime
:
null
,
phone
:
null
,
activityId
:
1
,
status
:
''
}
}
},
methods
:
{
//时间戳
timeChange
(
val
)
{
return
formatDate
(
new
Date
(
val
),
'yyyy-MM-dd hh:mm:ss'
)
},
//列表
getList
()
{
this
.
loadingTab
=
true
applyListActive
(
this
.
listQuery
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
tableData
=
data
.
data
.
activityAttendanceRecordVos
this
.
total
=
data
.
data
.
totalCount
this
.
information
=
data
.
data
.
activityAttendanceRecordTotalVo
}
else
{
this
.
$message
(
data
.
message
)
}
})
setTimeout
(()
=>
{
this
.
loadingTab
=
false
},
300
)
},
//是否中奖筛选
changeWin
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//搜索
search
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//抽奖类型筛选
changeClass
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//清空搜索
clearSearch
()
{
this
.
listQuery
=
{
page
:
1
,
limit
:
10
,
startTime
:
null
,
endTime
:
null
,
phone
:
null
,
activityId
:
1
}
},
//导出
downloadExcel
()
{
this
.
excelLoading
=
true
var
u
=
navigator
.
userAgent
,
app
=
navigator
.
appVersion
excelActive
(
this
.
listQuery
,
{
responseType
:
'arraybuffer'
}).
then
(
res
=>
{
const
content
=
res
const
blob
=
new
Blob
([
content
],
{
type
:
'application/vnd.ms-excel'
})
const
fileName
=
'活动数据.xlsx'
if
(
u
.
indexOf
(
'Edge'
)
>
-
1
)
{
window
.
navigator
.
msSaveBlob
(
blob
,
fileName
)
}
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
)
}
this
.
excelLoading
=
false
})
},
//时间筛选
changeTime
(
val
)
{
this
.
listQuery
.
page
=
1
if
(
!!
val
)
{
let
value
=
val
.
split
(
' - '
)
this
.
listQuery
.
startDate
=
value
[
0
]
+
' 00:00:00'
this
.
listQuery
.
endDate
=
value
[
1
]
+
' 23:59:59'
this
.
getList
()
}
else
{
this
.
listQuery
.
startDate
=
null
this
.
listQuery
.
endDate
=
null
this
.
getList
()
}
},
//页码
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
//分页
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
}
}
}
</
script
>
<
style
scoped
>
.information
{
border
:
1px
solid
#ccc
;
margin
:
20px
0
;
padding
:
10px
20px
;
}
.information
h4
{
color
:
#333
;
font-size
:
16px
;
font-weight
:
normal
;
}
.information
ul
{
padding
:
0
;
border-top
:
1px
solid
#eee
;
padding
:
10px
30px
;
overflow
:
hidden
;
}
.information
li
{
list-style
:
none
;
text-align
:
center
;
float
:
left
;
width
:
33.33%
;
border-right
:
1px
solid
#eee
;
}
.information
li
:last-child
{
border
:
none
;
}
</
style
>
\ No newline at end of file
src/views/conference/apply/applyList.vue
0 → 100644
View file @
b1dc01e8
<
template
>
<div
class=
"app-container calendar-list-container"
>
<el-form
:inline=
"true"
label-width=
"100px"
label-position=
"right"
>
<el-form-item
label=
"日期"
>
<el-date-picker
v-model=
"time"
type=
"daterange"
placeholder=
"选择日期范围"
@
change=
"changeTime"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"listQuery.phone"
placeholder=
"请输入手机号"
clearable
style=
"width:200px"
></el-input>
</el-form-item>
<el-button
type=
"primary"
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"primary"
@
click=
"clearSearch"
>
清空搜索
</el-button>
<el-button
type=
"primary"
:loading=
"excelLoading"
@
click=
"downloadExcel"
>
导出
</el-button>
</el-form>
<el-table
:data=
"tableData"
border
header-align=
"center"
v-loading=
"loadingTab"
style=
"margin-top:20px"
>
<el-table-column
label=
"序号"
align=
"center"
width=
"70"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
$index
+
(
listQuery
.
page
-
1
)
*
listQuery
.
limit
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"userName"
label=
"姓名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"phone"
label=
"电话"
align=
"center"
></el-table-column>
<el-table-column
prop=
"ticketNum"
label=
"人数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"crtTime"
label=
"报名时间"
align=
"center"
></el-table-column>
</el-table>
<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"
style=
"margin-top:20px"
></el-pagination>
</div>
</template>
<
script
>
import
{
applyList
,
excel
}
from
'api/applyManagements'
export
default
{
created
()
{
this
.
getList
()
},
data
()
{
return
{
excelLoading
:
false
,
loadingTab
:
false
,
tableData
:
[],
time
:
''
,
total
:
null
,
//总页数
listQuery
:
{
page
:
1
,
limit
:
10
,
startTime
:
null
,
endTime
:
null
,
phone
:
null
,
activityId
:
1
}
}
},
methods
:
{
//列表
getList
()
{
this
.
loadingTab
=
true
applyList
(
this
.
listQuery
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
tableData
=
data
.
data
.
data
this
.
total
=
data
.
data
.
totalCount
}
else
{
this
.
$message
(
data
.
message
)
}
})
setTimeout
(()
=>
{
this
.
loadingTab
=
false
},
300
)
},
//搜索
search
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//清空搜索
clearSearch
()
{
this
.
listQuery
=
{
page
:
1
,
limit
:
10
,
startTime
:
null
,
endTime
:
null
,
phone
:
null
,
activityId
:
1
}
},
//导出
downloadExcel
()
{
this
.
excelLoading
=
true
var
u
=
navigator
.
userAgent
,
app
=
navigator
.
appVersion
excel
(
this
.
listQuery
,
{
responseType
:
'arraybuffer'
}).
then
(
res
=>
{
const
content
=
res
const
blob
=
new
Blob
([
content
],
{
type
:
'application/vnd.ms-excel'
})
const
fileName
=
'报名列表.xlsx'
if
(
u
.
indexOf
(
'Edge'
)
>
-
1
)
{
window
.
navigator
.
msSaveBlob
(
blob
,
fileName
)
}
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
)
}
this
.
excelLoading
=
false
})
},
//时间筛选
changeTime
(
val
)
{
this
.
listQuery
.
page
=
1
if
(
!!
val
)
{
let
value
=
val
.
split
(
' - '
)
this
.
listQuery
.
startDate
=
value
[
0
]
+
' 00:00:00'
this
.
listQuery
.
endDate
=
value
[
1
]
+
' 23:59:59'
this
.
getList
()
}
else
{
this
.
listQuery
.
startDate
=
null
this
.
listQuery
.
endDate
=
null
this
.
getList
()
}
},
//页码
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
//分页
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
}
}
}
</
script
>
src/views/conference/award/awardSet.vue
0 → 100644
View file @
b1dc01e8
<
template
>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"online"
>
<h4>
参与活动奖励抽奖
</h4>
<table
border=
"1"
>
<tr>
<td>
宫格1
</td>
<td>
宫格2
</td>
<td>
宫格3
</td>
</tr>
<tr>
<td>
宫格4
</td>
<td
style=
"background:#20a0ff;color:#fff"
@
click=
"setOnline(1)"
>
设置
</td>
<td>
宫格6
</td>
</tr>
<tr>
<td>
宫格7
</td>
<td>
宫格8
</td>
<td>
宫格9
</td>
</tr>
</table>
</div>
<div
class=
"local"
>
<h4>
发布会现场奖品抽奖
</h4>
<table
border=
"1"
>
<tr>
<td>
宫格1
</td>
<td>
宫格2
</td>
<td>
宫格3
</td>
</tr>
<tr>
<td>
宫格4
</td>
<td
style=
"background:#20a0ff;color:#fff"
@
click=
"setOnline(2)"
>
设置
</td>
<td>
宫格6
</td>
</tr>
<tr>
<td>
宫格7
</td>
<td>
宫格8
</td>
<td>
宫格9
</td>
</tr>
</table>
</div>
<el-dialog
title=
"参与活动奖励抽奖设置"
:visible
.
sync=
"dialogVisible"
@
close=
"closePop"
>
<ul>
<li>
<p></p>
<p>
抽奖类型
</p>
<p>
奖品名称
</p>
<p>
奖品图片
</p>
<p>
奖品数量
</p>
<p>
中奖概率
</p>
<p>
最大中奖数
</p>
</li>
<li
v-for=
"(item,index) in table"
:key=
"index"
>
<!-- 序号 -->
<p>
宫格
{{
item
.
serialNumber
}}
</p>
<!-- 奖品类型 -->
<p>
<el-select
v-model=
"item.prizeGoodsType"
clearable
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</p>
<!-- 奖品名称 -->
<p>
<el-input
v-model=
"item.name"
placeholder
v-if=
"item.prizeGoodsType != 2"
></el-input>
<el-select
v-model=
"item.goodsId"
clearable
placeholder=
"请选择"
v-else
>
<el-option
v-for=
"item in couponData"
:key=
"item.id"
:label=
"item.title"
:value=
"item.id"
></el-option>
</el-select>
</p>
<!-- 奖品图片 -->
<p>
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:on-success=
"(response, file, fileList,id)=> handleSuccess(response, file, fileList,index)"
>
<img
v-if=
"item.iconPath"
:src=
"item.iconPath"
style=
"width:50px;height:30px"
/>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</p>
<!-- 奖品数量 -->
<p>
<el-input
v-model=
"item.totalStock"
placeholder
></el-input>
</p>
<!-- 中奖概率 -->
<p>
<el-input
v-model=
"item.probability"
placeholder
></el-input>
</p>
<!-- 最大中奖数 -->
<p>
<el-input
v-model=
"item.dayMaxUse"
placeholder
></el-input>
</p>
</li>
</ul>
<p
style=
"text-align:center"
>
<el-button
type=
"primary"
@
click=
"save"
>
保存
</el-button>
</p>
</el-dialog>
<!--
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:on-success=
"demo"
>
<img
v-if=
"demoImg"
:src=
"demoImg"
style=
"width:50px;height:30px"
/>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
-->
</div>
</
template
>
<
script
>
import
{
getTitle
}
from
'api/cunponManagements'
import
{
savePrize
,
infoPrize
}
from
'api/applyManagements'
export
default
{
data
()
{
return
{
demoImg
:
''
,
or
:
''
,
BASE_API
:
process
.
env
.
BASE_API
,
couponData
:
[],
dialogVisible
:
false
,
value4
:
''
,
input
:
''
,
iconPath
:
''
,
options
:
[
{
id
:
1
,
name
:
'奖品'
},
{
id
:
2
,
name
:
'优惠券'
},
{
id
:
0
,
name
:
'谢谢参与'
}
],
table
:
[
{
serialNumber
:
'1'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'2'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'3'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'4'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'5'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'6'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'7'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'8'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
}
]
}
},
created
()
{
this
.
getTitleFn
()
},
methods
:
{
handleSuccess
(
res
,
file
,
list
,
id
)
{
this
.
table
[
id
].
iconPath
=
res
.
data
},
//弹窗关闭
closePop
()
{
this
.
table
=
[
{
serialNumber
:
'1'
,
name
:
''
,
//奖品名称
iconPath
:
'https://xxtest.upyuns.com/image/admin/2019-12-05/37.jpg'
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'2'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'3'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'4'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'5'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'6'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'7'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
},
{
serialNumber
:
'8'
,
name
:
''
,
//奖品名称
iconPath
:
''
,
//奖品图片
totalStock
:
''
,
//奖品数量
probability
:
''
,
//中奖概率
dayMaxUse
:
''
,
//最大次数
prizeGoodsType
:
''
,
//奖品类型
goodsId
:
''
,
//优惠券id
id
:
null
}
]
},
//设置弹窗
setOnline
(
val
)
{
this
.
or
=
val
this
.
dialogVisible
=
true
infoPrize
().
then
(
data
=>
{
if
(
val
==
1
)
{
if
(
data
.
data
.
onlinePrize
!=
''
)
this
.
table
=
data
.
data
.
onlinePrize
}
else
{
if
(
data
.
data
.
localePrize
!=
''
)
this
.
table
=
data
.
data
.
localePrize
}
})
},
//保存
save
()
{
let
params
=
[]
this
.
table
.
forEach
(
element
=>
{
let
defaults
=
{
serialNumber
:
element
.
serialNumber
,
name
:
element
.
name
,
iconPath
:
element
.
iconPath
,
dayMaxUse
:
element
.
dayMaxUse
,
totalStock
:
element
.
totalStock
,
probability
:
element
.
probability
,
type
:
this
.
or
,
prizeGoodsType
:
element
.
prizeGoodsType
,
goodsId
:
element
.
goodsId
,
id
:
element
.
id
}
params
.
push
(
defaults
)
})
savePrize
(
params
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'设置成功'
)
this
.
dialogVisible
=
false
}
else
{
this
.
$message
.
error
(
data
.
message
)
}
})
},
//优惠券列表
getTitleFn
()
{
getTitle
().
then
(
data
=>
{
console
.
log
(
data
)
if
(
data
.
status
==
200
)
{
this
.
couponData
=
data
.
data
}
else
{
this
.
$message
.
error
(
'优惠券获取失败'
)
}
})
}
}
}
</
script
>
<
style
>
.el-dialog--small
{
width
:
60%
!important
;
}
.avatar-uploader-icon
{
width
:
auto
;
height
:
auto
;
}
li
{
list-style
:
none
;
overflow
:
hidden
;
/* text-align: center; */
}
li
p
{
float
:
left
;
margin-left
:
10px
;
}
li
:nth-child
(
1
)
p
{
color
:
#ccc
;
}
li
p
:nth-child
(
1
)
{
width
:
8%
;
margin-top
:
20px
;
}
li
p
:nth-child
(
2
)
{
width
:
18%
;
}
li
p
:nth-child
(
3
)
{
width
:
18%
;
}
li
p
:nth-child
(
4
)
{
width
:
8%
;
}
li
p
:nth-child
(
5
)
{
width
:
13%
;
}
li
p
:nth-child
(
6
)
{
width
:
13%
;
}
li
p
:nth-child
(
7
)
{
width
:
8%
;
}
.online
,
.local
{
width
:
49%
;
display
:
inline-block
;
}
.online
{
float
:
left
;
}
.local
{
float
:
right
;
}
h4
{
text-align
:
center
;
font-size
:
20px
;
font-weight
:
400
;
}
table
{
border
:
1px
solid
#d9d9d9
;
margin
:
0
auto
;
}
td
{
width
:
150px
;
height
:
150px
;
text-align
:
center
;
}
</
style
>
\ No newline at end of file
src/views/conference/prizeList/prizeLists.vue
0 → 100644
View file @
b1dc01e8
<
template
>
<div
class=
"app-container calendar-list-container"
>
<el-form
:inline=
"true"
label-width=
"100px"
label-position=
"right"
>
<el-form-item
label=
"日期"
>
<el-date-picker
v-model=
"time"
type=
"daterange"
placeholder=
"选择日期范围"
@
change=
"changeTime"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"listQuery.phone"
placeholder=
"请输入手机号"
clearable
style=
"width:200px"
></el-input>
</el-form-item>
<el-form-item
label=
"类型"
>
<el-select
v-model=
"listQuery.prizeType"
clearable
placeholder=
"请选择抽奖类型"
@
change=
"changeClass"
>
<el-option
v-for=
"item in options"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-button
type=
"primary"
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"primary"
@
click=
"clearSearch"
>
清空搜索
</el-button>
<el-button
type=
"primary"
:loading=
"excelLoading"
@
click=
"downloadExcel"
>
导出
</el-button>
</el-form>
<div
class=
"information"
>
<h4>
数据概况.
</h4>
<ul>
<li>
<p>
{{
information
.
onLineNum
}}
</p>
<p>
线上抽奖触发(次)
</p>
</li>
<li>
<p>
{{
information
.
onLineWineNum
}}
</p>
<p>
线上中奖个数(个)
</p>
</li>
<li>
<p>
{{
information
.
localeNum
}}
</p>
<p>
现场抽奖触发(次)
</p>
</li>
<li>
<p>
{{
information
.
localeWineNum
}}
</p>
<p>
现场中奖个数(个)
</p>
</li>
</ul>
</div>
<el-table
:data=
"tableData"
border
header-align=
"center"
v-loading=
"loadingTab"
style=
"margin-top:20px"
>
<el-table-column
label=
"序号"
align=
"center"
width=
"70"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
$index
+
(
listQuery
.
page
-
1
)
*
listQuery
.
limit
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"userName"
label=
"用户名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"phone"
label=
"电话"
align=
"center"
></el-table-column>
<el-table-column
prop=
"positionName"
label=
"身份"
align=
"center"
></el-table-column>
<el-table-column
label=
"发放类型"
align=
"center"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
prizeType
==
1
?
'线上'
:
'现场'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"prizeName"
label=
"抽奖礼品"
align=
"center"
></el-table-column>
<el-table-column
prop=
"expiryDateCode"
label=
"兑换码"
align=
"center"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
expiryDateCode
||
'无'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"lotteryTime"
label=
"中奖时间"
align=
"center"
></el-table-column>
</el-table>
<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"
style=
"margin-top:20px"
></el-pagination>
</div>
</template>
<
script
>
import
{
applyListWin
,
excelWin
}
from
'api/applyManagements'
export
default
{
created
()
{
this
.
getList
()
},
data
()
{
return
{
information
:
{},
excelLoading
:
false
,
loadingTab
:
false
,
tableData
:
[],
time
:
''
,
total
:
null
,
//总页数
options
:
[
{
id
:
''
,
name
:
'全部'
},
{
id
:
1
,
name
:
'线上'
},
{
id
:
2
,
name
:
'现场'
}
],
listQuery
:
{
page
:
1
,
limit
:
10
,
startTime
:
null
,
endTime
:
null
,
phone
:
null
,
activityId
:
1
,
prizeType
:
null
,
hasWinning
:
1
}
}
},
methods
:
{
//列表
getList
()
{
this
.
loadingTab
=
true
applyListWin
(
this
.
listQuery
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
tableData
=
data
.
data
.
activityWinningRecords
this
.
total
=
data
.
data
.
totalCount
if
(
this
.
listQuery
.
page
==
1
)
{
this
.
information
=
data
.
data
.
activityWinningRecordTotalVo
}
}
else
{
this
.
$message
(
data
.
message
)
}
})
setTimeout
(()
=>
{
this
.
loadingTab
=
false
},
300
)
},
//搜索
search
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//抽奖类型筛选
changeClass
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//清空搜索
clearSearch
()
{
this
.
listQuery
=
{
page
:
1
,
limit
:
10
,
startTime
:
null
,
endTime
:
null
,
phone
:
null
,
activityId
:
1
}
},
//导出
downloadExcel
()
{
this
.
excelLoading
=
true
var
u
=
navigator
.
userAgent
,
app
=
navigator
.
appVersion
excelWin
(
this
.
listQuery
,
{
responseType
:
'arraybuffer'
}).
then
(
res
=>
{
const
content
=
res
const
blob
=
new
Blob
([
content
],
{
type
:
'application/vnd.ms-excel'
})
const
fileName
=
'中奖列表.xlsx'
if
(
u
.
indexOf
(
'Edge'
)
>
-
1
)
{
window
.
navigator
.
msSaveBlob
(
blob
,
fileName
)
}
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
)
}
this
.
excelLoading
=
false
}
)
},
//时间筛选
changeTime
(
val
)
{
this
.
listQuery
.
page
=
1
if
(
!!
val
)
{
let
value
=
val
.
split
(
' - '
)
this
.
listQuery
.
startDate
=
value
[
0
]
+
' 00:00:00'
this
.
listQuery
.
endDate
=
value
[
1
]
+
' 23:59:59'
this
.
getList
()
}
else
{
this
.
listQuery
.
startDate
=
null
this
.
listQuery
.
endDate
=
null
this
.
getList
()
}
},
//页码
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
//分页
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
}
}
}
</
script
>
<
style
scoped
>
.information
{
border
:
1px
solid
#ccc
;
margin
:
20px
0
;
padding
:
10px
20px
;
}
.information
h4
{
color
:
#333
;
font-size
:
16px
;
font-weight
:
normal
;
}
.information
ul
{
padding
:
0
;
border-top
:
1px
solid
#eee
;
padding
:
10px
30px
;
overflow
:
hidden
;
}
.information
li
{
list-style
:
none
;
text-align
:
center
;
float
:
left
;
width
:
25%
;
border-right
:
1px
solid
#eee
;
}
.information
li
:last-child
{
border
:
none
;
}
</
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