You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
456 lines
14 KiB
456 lines
14 KiB
<template>
|
|
<RefreshView ref="mescrollRef" text="活动详情" :useDownScroll="false" :useUpScroll="false"
|
|
:useTitleLeftBtn="parameter.userRoleId==1?1:0" titleLeftBtnSource=" 管理" :dropLeftList="page.manageList" @drop="selectManage">
|
|
<view class="activity-detail">
|
|
<!-- 广告 -->
|
|
<view class="image-area">
|
|
<swiper indicator-dots="true" autoplay="true">
|
|
<swiper-item v-for="(item,index) in page.activityDetails.listActivityImage" :key="index">
|
|
<image class="image" :src="item.imageUrl" mode="aspectFill"></image>
|
|
</swiper-item>
|
|
</swiper>
|
|
</view>
|
|
<!-- 名称和活动类型 -->
|
|
<view class="name-category">
|
|
<h1>{{page.activityDetails.name}}</h1>
|
|
<text class="category">{{page.activityDetails.sportCategoryName}}</text>
|
|
</view>
|
|
|
|
<!-- 报名截止和整体活动时间 -->
|
|
<view class="row">
|
|
<!-- <view style="display: flex;flex-direction: row;margin-top: 15rpx;align-items: center;margin-left: 20rpx;margin-right: 30rpx;"> -->
|
|
<text class="field">报名截止:</text>
|
|
<text>{{page.activityDetails.enrollEndTime}}</text>
|
|
<!-- <text style="color: #E99D42;font-size: 26rpx;flex: 1;text-align: right;">还有1天</text> -->
|
|
</view>
|
|
|
|
<view class="line-thin"></view>
|
|
<view class="row">
|
|
<text class="field">整体活动:</text>
|
|
<view style="display: flex;flex-direction: column;">
|
|
<text>{{page.activityDetails.startTime}}</text>
|
|
<text class="margin-top20">{{page.activityDetails.endTime}}</text>
|
|
</view>
|
|
</view>
|
|
<!-- 活动项目 -->
|
|
<view v-for="(item,index) in page.activityDetails.listActivityItem" :key="index" >
|
|
<view class="item-area">
|
|
<!-- 活动项目名称类型金额 -->
|
|
<view class="item-name-mold-money">
|
|
<h2>{{item.name}}</h2>
|
|
<text class="mold-money">{{item.enrollMoldName}}/{{item.enrollMoney==0?"免费":item.enrollMoney+'元'}}</text>
|
|
</view>
|
|
<!-- 活动项目介绍 -->
|
|
<view class="item-introduction">
|
|
<text>{{item.introduction}}</text>
|
|
</view>
|
|
<view class="line-thin"></view>
|
|
<!-- 日期地点 -->
|
|
<view class="row">
|
|
<text class="date">{{item.startTime}}</text>
|
|
<text class="address">{{item.address}}</text>
|
|
<image v-if="!showAddress(item.gymnasiumSid)" style="width: 30rpx;height: 30rpx;" src="../../static/img/public/more.png" @click="gymnasiumName(item.gymnasiumSid)"></image>
|
|
</view>
|
|
<view class="line-thin"></view>
|
|
<view class="row" @click="userList(item.sid)">
|
|
<text class="field">报名数</text>
|
|
<text class="margin-left20 ">{{item.enrollNumbers==0?"暂无":item.enrollNumbers+'人'}}/{{item.enrollNumbersLimit==0?"不限":item.enrollNumbersLimit+'人'}}</text>
|
|
<view v-if="item.listUserHeadImageUrl.length>0" style="display:flex;flex-direction: row; margin-left:10rpx;" >
|
|
<view v-for="(url,i) in item.listUserHeadImageUrl " :key="i">
|
|
<view
|
|
style="display:flex; width:100%;margin-left:2rpx;margin-right:2rpx;">
|
|
<image style="border-radius: 50%; width: 50rpx;height: 50rpx;" :src="url" mode="aspectFill"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<image class="more" src="../../static/img/public/more.png" ></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="line-thin"></view>
|
|
<!-- 活动介绍 -->
|
|
<view class="row">
|
|
<text class="field">活动介绍</text>
|
|
<view class="line"></view>
|
|
</view>
|
|
<text class="introduction">{{page.activityDetails.introduction}}</text>
|
|
<!-- 奖品奖项 -->
|
|
<view class="row" v-if="page.activityDetails.listSponsor ===''">
|
|
<text class="field">奖品奖项</text>
|
|
<view class="line"></view>
|
|
</view>
|
|
<text class="introduction">{{page.activityDetails.notes}}</text>
|
|
<!-- 特别鸣谢 -->
|
|
<view class="row" v-if="page.activityDetails.listSponsor ==='[]'">
|
|
<text class="field">特别鸣谢</text>
|
|
<view class="line"></view>
|
|
</view>
|
|
<view
|
|
style="display: flex;margin-left: 40rpx;margin-right: 40rpx;flex-direction: column; margin-top: 30rpx;">
|
|
<view v-for="(item,pos) in page.activityDetails.listSpecialThanks " :key="pos">
|
|
<view
|
|
style="display: flex; width: 100%; padding-top: 10rpx;padding-bottom: 10rpx;justify-content: center;">
|
|
<text style="color: #898989;font: size 28rpx;flex: 1;">{{item.name}}</text>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
<view class="line-thin"></view>
|
|
<!-- 主办方 -->
|
|
<view class="row">
|
|
<text class="field">主办方:</text>
|
|
<text style="color: #898989;font-size: 25rpx;">{{page.activityDetails.organizer}}</text>
|
|
</view>
|
|
<view class="line-thin"></view>
|
|
<!-- 联系人 -->
|
|
<view class="row">
|
|
<text class="field">联系人:</text>
|
|
<view style="display: flex;flex-direction: row;">
|
|
<text style="color: #898989;font-size: 25rpx;">{{page.activityDetails.linkerName}}</text>
|
|
<view style="width: 30rpx;"></view>
|
|
<text style="color: #898989; font-size: 25rpx;">{{page.activityDetails.linkerPhone}}</text>
|
|
</view>
|
|
|
|
</view>
|
|
<view class="line-thin"></view>
|
|
<view class="row">
|
|
<text class="field">报名必填</text>
|
|
<text>{{page.enrollRequiredName}}</text>
|
|
<!-- <image class = "more" src="../../static/img/public/more.png" ></image> -->
|
|
</view>
|
|
<view class="line-wide"></view>
|
|
<!-- 报名条款及按钮 -->
|
|
<view class="agreeMent">
|
|
<checkbox-group @change="checkboxChange">
|
|
<checkbox style="transform:scale(0.7)" :checked="checked1"></checkbox>
|
|
</checkbox-group>
|
|
<text class="text2">我已阅读并同意</text>
|
|
<text style="color: #007AFF;">《参赛须知》</text>
|
|
<text style="display: flex;text-align: center; margin-left: 20rpx; padding: 5rpx 10rpx;background: #0081D5;
|
|
color: #FFFFFF; font-size: 28rpx;" @click="enroll()"> 我要报名 </text>
|
|
</view>
|
|
<view style="height: 300rpx;"></view>
|
|
</view>
|
|
</RefreshView>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
parameter:{
|
|
activitySid:"",
|
|
userRoleId:0,
|
|
userRoleName:"游客",
|
|
passRequired : false,
|
|
noPassMsg : ""
|
|
},
|
|
isCreate:0,
|
|
checked1: true,
|
|
page:{
|
|
activityDetails:{},
|
|
manageList: [{
|
|
'name': '修改活动',
|
|
'src': '../../static/img/public/modi.png',
|
|
'id': 0
|
|
}, {
|
|
'name': '删除活动',
|
|
'src': '/static/img/public/dustbin.png',
|
|
'id': 1
|
|
}],
|
|
enrollRequiredName:""
|
|
},
|
|
}
|
|
},
|
|
onLoad: function(option) {
|
|
// 为参数赋值
|
|
this.parameter.activitySid = option.activitySid
|
|
// 如果用户登陆则获取用户角色
|
|
let _this = this
|
|
if (getApp().globalData.isLogin){
|
|
_this.parameter.userRoleId =1
|
|
let sysUserSid = getApp().globalData.sysUserSid;
|
|
let activitySid = _this.parameter.activitySid;
|
|
_this.HTTP({
|
|
url: 'aos/v1/aosUser/getActivityRole',
|
|
method: 'GET',
|
|
data: {
|
|
'sysUserSid': sysUserSid,
|
|
'activitySid':activitySid
|
|
},
|
|
paramsType: "FORM",
|
|
loading: true
|
|
}).then((res) => {
|
|
if (200 == res.code) {
|
|
_this.parameter.userRoleId = res.data.userRoleId
|
|
_this.parameter.userRoleName = res.data.userRoleName
|
|
// } else {
|
|
// _this.Toast(res.msg)
|
|
}
|
|
});
|
|
}else{
|
|
_this.parameter.userRoleId = 0
|
|
}
|
|
|
|
},
|
|
onShow() {
|
|
let _this = this
|
|
let activitySid = _this.parameter.activitySid;
|
|
_this.HTTP({
|
|
url: 'aos/v1/activity/getActivityDetails/' + activitySid,
|
|
method: 'GET',
|
|
paramsType: "FORM",
|
|
loading: true
|
|
}).then((res) => {
|
|
if (200 == res.code) {
|
|
_this.page.activityDetails = res.data
|
|
_this.setEnrollRequiredName()
|
|
} else {
|
|
_this.Toast(res.msg)
|
|
}
|
|
});
|
|
},
|
|
methods: {
|
|
setEnrollRequiredName(){
|
|
let enrollRequiredName = ""
|
|
if (this.page.activityDetails.enrollRequired.onRealName == 1){
|
|
enrollRequiredName += "姓名"
|
|
}
|
|
if (this.page.activityDetails.enrollRequired.onSex == 1){
|
|
if (this.page.activityDetails.enrollRequired.onRealName == 1){
|
|
enrollRequiredName += " / "
|
|
}
|
|
enrollRequiredName += "性别"
|
|
}
|
|
if (this.page.activityDetails.enrollRequired.onBirthday == 1){
|
|
if (this.page.activityDetails.enrollRequired.onSex == 1 || this.page.activityDetails.enrollRequired.onRealName == 1){
|
|
enrollRequiredName += " / "
|
|
}
|
|
enrollRequiredName += "生日"
|
|
}
|
|
if (this.page.activityDetails.enrollRequired.onAdCode == 1){
|
|
if (this.page.activityDetails.enrollRequired.onSex == 1 || this.page.activityDetails.enrollRequired.onRealName == 1 || this.page.activityDetails.enrollRequired.onBirthday == 1){
|
|
enrollRequiredName += " / "
|
|
}
|
|
enrollRequiredName += "地区"
|
|
}
|
|
this.page.enrollRequiredName = enrollRequiredName
|
|
},
|
|
selectManage(index, isLeft, selectData) {
|
|
let _this = this;
|
|
let id = selectData.id
|
|
if (id == 0) {
|
|
// 修改活动
|
|
uni.navigateTo({
|
|
url: '../publish/CreateActivity?sid=' + _this.parameter.activitySid
|
|
})
|
|
} else if (id == 1) {
|
|
// 删除活动
|
|
uni.showModal({
|
|
title: '温馨提示',
|
|
content: '确定删除此赛事?',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
_this.HTTP({
|
|
url: 'aos/v1/activity/delActivity/' + _this.parameter.activitySid,
|
|
method: 'DELETE',
|
|
paramsType: "FORM",
|
|
loading: true
|
|
}).then((res) => {
|
|
if (200 == res.code) {
|
|
uni.navigateBack({
|
|
delta: 1
|
|
});
|
|
} else {
|
|
_this.Toast(res.msg)
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
} else if (id == -1) {
|
|
// 关闭
|
|
}
|
|
},
|
|
toCreateActivity(){
|
|
let activitySid = this.parameter.activitySid
|
|
uni.navigateTo({
|
|
url: '../publish/CreateActivity?sid=' + activitySid
|
|
});
|
|
},
|
|
showAddress(s) {
|
|
console.log("..." + s);
|
|
return this.IsEmpty(s)
|
|
},
|
|
checkboxChange(e) {
|
|
this.checked1 = !this.checked1
|
|
console.log(this.checked1)
|
|
},
|
|
gymnasiumName(e) {
|
|
uni.navigateTo({
|
|
url: "ArenaDetailActivity?sid=" + e
|
|
})
|
|
console.log("gymnasiumName>>", e)
|
|
},
|
|
userList(sid) {
|
|
console.log("userList>>", sid)
|
|
uni.navigateTo({
|
|
url: "BaoMingListActivity?activitySid=" + this.parameter.activitySid + "&activityItemSid=" + sid
|
|
})
|
|
|
|
},
|
|
enroll() {
|
|
let _this = this;
|
|
|
|
// 勾选协议
|
|
if (!this.checked1) {
|
|
this.Toast("请认真阅读参赛须知,并勾选。")
|
|
return
|
|
}
|
|
// 报名菜单赋值
|
|
let listEnrollMenu = []
|
|
let listActivityItem = this.page.activityDetails.listActivityItem
|
|
for (var i = 0; i < listActivityItem.length; i++) {
|
|
let enrollMenu = listActivityItem[i].name
|
|
let enrollMold = listActivityItem[i].enrollMold
|
|
if ( enrollMold = 1){
|
|
enrollMenu += "(" + listActivityItem[i].enrollMoldName +")"
|
|
}
|
|
listEnrollMenu.push(enrollMenu)
|
|
}
|
|
|
|
// 输出报名菜单
|
|
uni.showActionSheet({
|
|
itemList: listEnrollMenu,
|
|
success: function(res) {
|
|
console.log("itemList==" + listEnrollMenu)
|
|
console.log("res==" + JSON.stringify(res))
|
|
_this.selectMenu(res.tapIndex, listEnrollMenu)
|
|
},
|
|
fail(e) {
|
|
console.log("reeees==" + JSON.stringify(e))
|
|
}
|
|
});
|
|
|
|
},
|
|
verifyEnrollRequired(){
|
|
|
|
},
|
|
selectMenu(id, info) {
|
|
// 用户如未登陆则进入授权登陆页面
|
|
if (!getApp().globalData.isLogin){
|
|
uni.navigateTo({
|
|
url: "../me/AuthLogin"
|
|
})
|
|
}
|
|
let _this = this
|
|
let activitySid = _this.page.activityDetails.sid
|
|
let sysUserSid = getApp().globalData.sysUserSid
|
|
// console.log("报名模式=============",JSON.stringify(_this.page.activityDetails))
|
|
// 校验报名必填项
|
|
let onRealName = _this.page.activityDetails.enrollRequired.onRealName
|
|
let onSex = _this.page.activityDetails.enrollRequired.onSex
|
|
let onBirthday = _this.page.activityDetails.enrollRequired.onBirthday
|
|
let onAdCode = _this.page.activityDetails.enrollRequired.onAdCode
|
|
if (onRealName == 0 || onSex == 0 || onBirthday == 0 || onAdCode == 0){
|
|
_this.HTTP({
|
|
url: 'aos/v1/activity/verifyEnrollRequired',
|
|
method: 'GET',
|
|
paramsType: "FORM",
|
|
data: {
|
|
'activitySid': activitySid,
|
|
'sysUserSid': sysUserSid
|
|
},
|
|
loading: true
|
|
}).then((res) => {
|
|
if ( res.code == "200") {
|
|
_this.parameter.passRequired = true
|
|
}else{
|
|
// _this.parameter.noPassMsg = res.msg
|
|
uni.showModal({
|
|
title: '报名需要补充如下个人信息',
|
|
content: res.msg,
|
|
success(res) {
|
|
if (res.confirm) {
|
|
uni.navigateTo({
|
|
url: '../me/RealInfo?sysUserSid=' + getApp().globalData.sysUserSid
|
|
})
|
|
}else
|
|
{
|
|
return
|
|
}
|
|
}
|
|
})
|
|
}
|
|
});
|
|
}
|
|
// 获取参数
|
|
console.log(id)
|
|
console.log(info)
|
|
let activityItemSid = _this.page.activityDetails.listActivityItem[id].sid // 活动项目SId
|
|
let enrollMold = _this.page.activityDetails.listActivityItem[id].enrollMold // 报名模式(0为个人,1为团体)
|
|
console.log("用户SID",getApp().globalData.sysUserSid)
|
|
// 活动项目为个人
|
|
if (enrollMold == 0){
|
|
// 校验报名条件
|
|
this.HTTP({
|
|
url: 'aos/v1/activityItem/personalEnroll',
|
|
method: 'POST',
|
|
data: {
|
|
'activityItemSid': activityItemSid,
|
|
'sysUserSid': getApp().globalData.sysUserSid,
|
|
'paymentMemberSid': getApp().globalData.sysUserSid,
|
|
},
|
|
paramsType: "JSON",
|
|
loading: true
|
|
}).then((res) => {
|
|
if (res.code == 200) {
|
|
this.Toast("报名成功!")
|
|
} else {
|
|
this.Toast(res.msg)
|
|
}
|
|
}, (err) => {
|
|
// 错误提示
|
|
_this.Toast("出错了:" + err.data.errmsg)
|
|
})
|
|
}
|
|
return
|
|
// 活动项目为团体
|
|
if (enrollMold == 1){
|
|
// 获取我的队伍
|
|
|
|
uni.navigateTo({
|
|
url: "../find/TeamEnroll?activityItemSid="+activityItemSid
|
|
})
|
|
}
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import url("../../static/columns.css");
|
|
.items {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.agreeMent {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
margin-top: 50rpx;
|
|
margin-left: 30rpx;
|
|
|
|
.text2 {
|
|
color: #666666;
|
|
font-size: 30rpx;
|
|
}
|
|
}
|
|
.content{
|
|
display: flex;
|
|
flex-direction: column;
|
|
background: #FFFFFF;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
</style>
|
|
|