Commit de5ec49e authored by Mac's avatar Mac

甲鹤活动列表和详情

parent c50c1b6d
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
wx.getUserProfile({ wx.getUserProfile({
desc: '用于完善资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 desc: '用于完善资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: info => { success: info => {
console.log(info.userInfo) console.log(info)
this.msg = { this.msg = {
Id: 0, Id: 0,
AliasName: info.userInfo.nickName, AliasName: info.userInfo.nickName,
......
...@@ -443,6 +443,12 @@ ...@@ -443,6 +443,12 @@
"path": "personal/payment-order"//课程代付 "path": "personal/payment-order"//课程代付
},{ },{
"path":"investigation" "path":"investigation"
},{
"path":"Jiaheactivity"//甲鹤活动
},{
"path":"JIaheactivitydetails"//活动详情
},{
"path":"jieheactivityBM"//甲鹤活动报名
}] }]
}, },
//线下服务 //线下服务
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<u-icon name="arrow-left" size="44"></u-icon> <u-icon name="arrow-left" size="44"></u-icon>
</view> </view>
</view> </view>
<!-- <view @click='yj' style="width: 200px;height: 50px;">活动</view> --> <view @click='yj' style="width: 200px;height: 50px;">活动</view>
<u-tabs v-if="myPageData.home_pages && myPageData.home_pages.navs.length > 1" name="name" :list="myPageData.home_pages.navs" <u-tabs v-if="myPageData.home_pages && myPageData.home_pages.navs.length > 1" name="name" :list="myPageData.home_pages.navs"
:is-scroll="true" :active-color="mainColor" :current="active" :bar-width="80" :font-size="32" :bold="false" @change="changeHandler"></u-tabs> :is-scroll="true" :active-color="mainColor" :current="active" :bar-width="80" :font-size="32" :bold="false" @change="changeHandler"></u-tabs>
<template v-for="(item, i) in myPageData.home_pages.navs"> <template v-for="(item, i) in myPageData.home_pages.navs">
...@@ -1220,7 +1220,7 @@ ...@@ -1220,7 +1220,7 @@
yj(){ yj(){
uni.navigateTo({ uni.navigateTo({
url: '/pages/blindDate/personal/peoplescreen' url: '/pages/school/Jiaheactivity'
}) })
} }
......
<style lang="scss" scoped>
.Jiaheactivitydetails{
width: 100%;
height: 100vh;
background: #FFF;
font-family: aa;
.box{
width: 100%;
position: relative;
}
.details-box-top-z{
width: 100%;
height: 3px;
}
.details-box-top-f{
width: 100%;
height: 3px;
background: #40766E;
}
.details-box-t-positions{
height: 40rpx;
font-size: 20rpx;
color: #FFF;
background: #B7A264;
display: flex;
align-items: center;
padding: 0 26rpx;
border-top-right-radius: 6px;
border-bottom-left-radius: 6px;
position: absolute;
right: 0;
top: 0;
}
.details-b-center{
width: 100%;
display: flex;
margin-top: 40rpx;
}
.details-b-center-l{
width: 120rpx;
height: 120rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
}
.details-b-center-r{
width: 1px;
flex:1;
padding: 0 15px;
}
.details-b-title{
width: 100%;
font-size: 28rpx;
color: #111111;
font-weight: bold;
font-family: PingFang SC;
}
.details-b-time{
font-size: 22rpx;
color: #999999;
margin-top: 18rpx;
}
.addressStyle{
width: 690rpx;
height: 45px;
background: #FFFFFF;
box-shadow: 0px 3px 6px 0px rgba(139, 115, 64, 0.16);
border-radius: 6px;
font-size: 12px;
color: #999999;
display: flex;
padding: 0 15px;
align-items: center;
margin-top: 20px;
margin-left: 30rpx;
}
.addressStyle-r{
width: 1px;
flex:1;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
.positionb{
width: 100%;
height: 120rpx;
position: fixed;
left: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 15px;
background: #FFF;
}
.btnc{
width: 220rpx;
height: 80rpx;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #FFFFFF;
background: #CCCCCC;
}
}
</style>
<template>
<view class="Jiaheactivitydetails">
<view style="width: 100%;height: 450rpx;">
<image :src="detial.CoverImg" style="width: 100%;height: 100%;"></image>
</view>
<view class="box">
<view class="details-box-top-z" v-if="(detial.TotalMan- detial.JoinNum)>0" :style="{background:mainColor}"></view>
<view class="details-box-top-f" v-if="(detial.TotalMan- detial.JoinNum)==0" ></view>
<view class="details-box-t-positions" v-if="(detial.TotalMan- detial.JoinNum)>0" :style="{background:mainColor}">
<text>{{(detial.TotalMan- detial.JoinNum)>=6?'可预约':(detial.TotalMan- detial.JoinNum)<6?'剩余'+(detial.TotalMan- detial.JoinNum)+'个空位':''}}</text>
</view>
<view class="details-box-t-positions" v-if="(detial.TotalMan- detial.JoinNum)==0" :style="{background:'#40766E'}">
爆满
</view>
<view class="details-b-center">
<view class="details-b-center-l">
<view style="font-size: 28rpx;color: #999999;font-weight: 500;font-family: PingFang SC;">
{{detial.MonthStr}}
</view>
<view style="font-size: 50rpx;color: #1B1D1E;font-weight: 800;font-family: PingFang SC;">
{{detial.DayStr}}
</view>
<view style="font-size: 28rpx;color: #999999;font-weight: 500;font-family: PingFang SC;">
{{detial.WeekStr}}
</view>
</view>
<view style="width: 1px;background: #E2E2E2;height: 86px;"></view>
<view class="details-b-center-r">
<view class="details-b-title">
{{detial.ActivityName}}
</view>
<view class="details-b-time">
报名时间:{{detial.BMStart}}-{{detial.BMEnd}}
</view>
<view class="details-b-time">
活动时间:{{detial.HDStart}}-{{detial.HDEnd}}
</view>
<view class="details-b-time" >
<text v-if="detial.Distinguish==1">报名人数:{{detial.TotalMan}}</text>
<text v-if="detial.Distinguish==0">报名人数:男性{{detial.ManNum}}<text style="margin-left: 10px;">男性{{detial.WoManNum}}</text> </text>
</view>
<view class="details-b-time" v-if="detial.AgeLimit==0">
<text >年龄范围:{{detial.StartAge}}岁 ~ {{detial.EndAge}}</text>
</view>
</view>
</view>
<view class="addressStyle" @click="goopenlocation(detial)">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/jiaheaddress.png" style="width: 12px;height: 15px;margin-right: 15px;"></image>
<view class="addressStyle-r">
{{detial.LocationName}}
</view>
</view>
<view style="width: 100%;padding: 15px;margin-bottom: 120rpx;">
<view class="acdetail_Intro" v-html="richtext"></view>
</view>
<view class="positionb">
<view :style="{color:pricecolor,'font-size':'40rpx'}">
<text v-if="detial.IsFree==1">免费</text>
<view v-if="detial.IsFree==2 && (detial.Price>0 || detial.PointNum>0)" style="display: flex;align-items: flex-end;" >
<text v-if="detial.Price>0" style="font-size: 22rpx;"></text>
<text v-if="detial.Price>0">{{detial.Price}}</text>
<text v-if="detial.Price>0 && detial.PointNum>0" style="font-size: 12px;margin: 0 5px;"></text>
<text v-if="detial.PointNum>0">{{detial.PointNum}}</text>
<text v-if="detial.PointNum>0" style="font-size: 22rpx;"></text>
</view>
<view v-if="detial.IsFree==2 && detial.Price==0" style="display: flex;align-items: flex-end;" >
<text>{{detial.PointNum}}</text>
<text style="font-size: 22rpx;"></text>
</view>
</view>
<view v-if="detial.IsJoinActivity==0">
<view class="btnc" v-if="detial.IsSignUp==1" :style="{background:mainColor}" @click="gosignUp()">立即预约</view>
<view class="btnc" v-if="detial.IsSignUp==0">不可预约</view>
</view>
<view v-if="detial.IsJoinActivity==1">
<view class="btnc" v-if="detial.IsSignUp==1">已报名</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default{
data(){
return{
pageTitle: "活动详情",
mainColor:'',
pricecolor:'',
Id:0,
detial:{},
richtext:""
}
},
onLoad(options) {
if(options && options.Id){
this.Id = options.Id
}
this.GetActivityDetial()
},
created() {
this.mainColor = this.$uiConfig.mainColor;
this.pricecolor = this.$uiConfig.pricecolor;
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
methods:{
GetActivityDetial(){
this.request2({
url: '/api/AppletEducation/GetActivityDetial',
data: {Id:this.Id}
},
res => {
this.detial = res.data;
let tempRichtext=""
tempRichtext = this.detial.ActivityInfo.replace(/<img[^>]*>/gi, function(match, capture) {
var match = match.replace(/style=\"(.*)\"/gi,
'style="width:100% !important"');
return match;
});
this.richtext=tempRichtext
}
);
},
goopenlocation(x){
uni.openLocation({
address:x.LocationName,
latitude: Number(x.LonLat.split(',')[0]) ,
longitude: Number(x.LonLat.split(',')[1]),
success: function () {
console.log('success');
},
fail:function(err){
console.log(err)
}
});
},
gosignUp(){
let dataList = encodeURIComponent(JSON.stringify(this.detial))
uni.navigateTo({
url: '/pages/school/jieheactivityBM?details=' + dataList
})
}
}
}
</script>
<style lang="scss" scoped>
.Jiaheactivity .box-top{
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 15px;
.box-t-item{
width: 140rpx;
height: 60rpx;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #999999;
margin-right: 10px;
background: #EDF0F3;
}
.currentStyle{
color: #FFF;
background-color: #40766E;
}
.box-top-r{
width:200rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #40766E;
background: #EDF0F3;
border-radius: 4px;
padding: 0 5px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.Jiaheactivity .details{
width: 100%;
padding: 0 15px;
.details-time{
width: 100%;
font-size: 12px;
color: #111111;
margin-top: 15px;
}
.details-box{
width: 100%;
margin-top: 15px;
box-shadow: 0px 3px 6px 0px rgba(139, 115, 64, 0.16);
border-radius: 6px;
overflow: hidden;
position: relative;
min-height: 196rpx;
}
.details-box-top-z{
width: 100%;
height: 3px;
}
.details-box-top-f{
width: 100%;
height: 3px;
background: #40766E;
}
.details-box-t-positions{
height: 40rpx;
font-size: 20rpx;
color: #FFF;
background: #B7A264;
display: flex;
align-items: center;
padding: 0 26rpx;
border-top-right-radius: 6px;
border-bottom-left-radius: 6px;
position: absolute;
right: 0;
top: 0;
}
.details-b-center{
width: 100%;
display: flex;
margin-top: 40rpx;
}
.details-b-center-l{
width: 120rpx;
height: 120rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
}
.details-b-center-r{
width: 1px;
flex:1;
padding: 0 15px;
}
.details-b-title{
width: 100%;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
font-size: 28rpx;
color: #111111;
font-weight: bold;
font-family: PingFang SC;
}
.details-b-time{
font-size: 24rpx;
color: #999999;
margin-top: 20rpx;
}
.details-b-bottom{
width: 100%;
height: 45px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 15px;
}
}
</style>
<template>
<view class="Jiaheactivity" >
<view class="box-top">
<view style="display: flex;">
<view class="box-t-item" :class="{currentStyle:current == 1}" @click="listType(1)">即将开始</view>
<view class="box-t-item" :class="{currentStyle:current == 2}" @click="listType(2)">正在参加</view>
</view>
<view class="box-top-r" @click="show=true" v-if="current == 1">
<text class="box-top-r-text">{{ActivityName}}</text>
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/salesxiala.png" style="width: 17px;height: 17px;margin-left: 7px;"></image>
</view>
</view>
<view v-show="current==1">
<u-empty v-if="g.length == 0" text="暂无内容" mode="list"></u-empty>
<view v-if=" g.length>0" style="
height: calc(100vh - 50px);
width: calc(100vw);
overflow: hidden;
">
<scroll-view :scroll-y="true" :enable-back-to-top="true" :enable-flex="true" @scrolltolower="lower" style="height: 100%;">
<view class="details" v-for="(item,index) in g" :key='index'>
<view class="details-time">
{{item.Dateitem}}
</view>
<view class="details-box" v-for="(x,y) in item.list" :key='y' @click="gourl(x)">
<view class="details-box-top-z" v-if="(x.TotalMan-x.JoinNum)>0" :style="{background:mainColor}"></view>
<view class="details-box-top-f" v-if="(x.TotalMan-x.JoinNum)==0" ></view>
<view class="details-box-t-positions" v-if="(x.TotalMan-x.JoinNum)>0" :style="{background:mainColor}">
<text>{{(x.TotalMan-x.JoinNum)>=6?'可预约':(x.TotalMan-x.JoinNum)<6?'剩余'+(x.TotalMan-x.JoinNum)+'个空位':''}}</text>
</view>
<view class="details-box-t-positions" v-if="(x.TotalMan-x.JoinNum)==0" :style="{background:'#40766E'}">
爆满
</view>
<!-- 内容 -->
<view class="details-b-center">
<view class="details-b-center-l">
<view style="font-size: 50rpx;color: #1B1D1E;font-weight: 800;font-family: PingFang SC;">
{{x.DayStr}}
</view>
<view style="font-size: 28rpx;color: #999999;font-weight: 500;font-family: PingFang SC;">
{{x.WeekStr}}
</view>
</view>
<view style="width: 1px;background: #E2E2E2;height: 60px;"></view>
<view class="details-b-center-r">
<view class="details-b-title">
{{x.ActivityName}}
</view>
<view class="details-b-time">
报名时间:{{x.BMStart}}-{{x.BMEnd}}
</view>
</view>
</view>
<view style="width: 100%;height: 1px;background: #E2E2E2;margin-top: 10px;"></view>
<view class="details-b-bottom">
<view class="details-b-time" style="margin-top: 0;">
活动时间:{{x.HDStart}}-{{x.HDEnd}}
</view>
<view :style="{color:pricecolor,'font-size':'32rpx'}">
<text v-if="x.IsFree==1">免费</text>
<view v-if="x.IsFree==2 && x.Price>0" style="display: flex;align-items: flex-end;" >
<text style="font-size: 22rpx;"></text>
<text>{{x.Price}}</text>
</view>
<view v-if="x.IsFree==2 && x.Price==0" style="display: flex;align-items: flex-end;" >
<text>{{x.PointNum}}</text>
<text style="font-size: 22rpx;"></text>
</view>
</view>
</view>
</view>
</view>
<u-loadmore :status="status" :load-text="loadText" :font-size="24" :margin-top="20" :margin-bottom="20" bg-color="#FFF" />
</scroll-view>
</view>
</view>
<view v-show="current==2" style="height: calc(100vh - 50px);">
<signUp ref='children'></signUp>
</view>
<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth='gbAuth'></auth>
<u-popup v-model="show" mode="bottom" border-radius="20">
<view class="pubox" >
<view class="pubox-top">
<view></view>
<text >选择活动类型</text>
<u-icon name="cross" color="#555" size="40" @click='show=false'></u-icon>
</view>
<!-- <view style="display: flex;flex-direction: column;align-items: center;margin-top: 10px;">
<view style="font-size: 20px;color: #111111;font-weight: 400; ">选择你感兴趣的贴吧</view>
</view> -->
<scroll-view scroll-y="true" style="max-height: calc(100vh * 0.7 - 65px);padding-bottom: 20px;min-height:calc(100vh * 0.4 - 65px) ;">
<view class="ht-box">
<view v-for="(x,y) in forumList" :key="y" class="foritem" @click="select(x)" :style="{color:x.Id == msg.ActivityType?'#FFF':'#666666',background:x.Id == msg.ActivityType?mainColor:'#F9F9F9'}">
{{x.TypeName}}
</view>
</view>
</scroll-view>
</view>
</u-popup>
</view>
</template>
<script>
import auth from "@/components/auth/index.vue";
import signUp from './components/signUpList.vue'
export default {
components: {
auth,
signUp
},
data() {
return {
show:false,
current:1,
pageTitle: "报名",
showAuth: false,
u: {},
mainColor: "",
pricecolor:'',
msg: {
pageIndex: 1,
pageSize: 10,
ActivityType: 0,
},
ActivityName:'',
page_count: 1,
g: [],
loading: false,
status: "loadmore",
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
forumList:[{Id:1,Name:'亲子活动'},{Id:2,Name:'亲子活动2'}],
};
},
created() {
this.mainColor = this.$uiConfig.mainColor;
this.pricecolor = this.$uiConfig.pricecolor;
},
mounted() {
uni.setNavigationBarTitle({
title: this.pageTitle,
});
let basedata = wx.getStorageSync("basedata")
},
onLoad: function(option) {
this.u = uni.getStorageSync("mall_UserInfo");
if (!this.u) {
this.u = {
nickName: "未登录",
avatarUrl: ""
};
this.showAuth = true;
} else {
this.GetActivityTypeList()
}
},
methods: {
GetActivityTypeList(){
this.request2({
url: '/api/AppletEducation/GetActivityTypeList',
data: {}
},
res => {
this.forumList = res.data
let obj={
Id:0,
TypeName:'不限'
}
this.forumList.unshift(obj)
this.msg.ActivityType =0;
this.ActivityName ='不限';
}
);
this.init()
},
init() {
this.request2({
url: '/api/AppletEducation/GetActivityPage',
data: this.msg
},
res => {
this.loading = false;
if (res.resultCode == 1) {
let data = this.groupArr(res.data.pageData,'MonthStr');
let data2 = data
if(this.g.length>0){
data2.forEach(x=>{
if(x.Day == this.g[this.g.length-1].Day){//判断当前第一条数据和已有的是否同一天 放在一起
console.log('进入一次')
this.g[this.g.length-1].list=this.g[this.g.length-1].list.concat(x.list);
data.splice(0,1)
}
})
}
this.g = this.g.concat(data);
this.page_count = res.data.pageCount;
if (this.page_count == 1) {
this.status = "nomore";
}
}
}
);
},
groupArr(list,field){
var fieldList = [],att=[];
list.map((e)=>{
fieldList.push(e[field])
})
//数组去重
fieldList = fieldList.filter((e,i,self)=>{
return self.indexOf(e)==i
})
for(var j=0;j<fieldList.length;j++){
//过滤出匹配到的数据
var arr = list.filter((e)=>{
return e.MonthStr==fieldList[j];
})
att.push({
Dateitem:arr[0].YearStr+'年'+arr[0].MonthStr+'月',
list:arr
})
}
return att;
},
getorder(){//报名成功处理
this.current = 2;//让他直接跳入我报名
},
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.init();
} else {
this.status = "nomore";
}
},
reloadUserinfo() {
this.u = uni.getStorageSync("mall_UserInfo");
this.GetActivityTypeList()
},
//关闭登录窗口
gbAuth() {
uni.navigateBack()
},
listType(type){
this.current = type;
if(type==1){//TODO 暂时不知道接口
}else{
if (Object.keys(this.$refs).length > 0 && this.$refs.children) { //判断
this.$refs.children.getfzuj()
}
}
},
select(x){
this.msg.ActivityType =x.Id;
this.ActivityName =x.TypeName;
this.show = false;
this.msg.pageIndex=1;
this.g=[];
this.init()
},
gourl(x){
uni.navigateTo({
url:'/pages/school/JIaheactivitydetails?Id='+x.Id
})
}
},
};
</script>
<style>
.Jiaheactivity {
width: 100%;
height: 100vh;
background: #FFF;
font-family: aa;
}
.Jiaheactivity .pubox{
width: 100%;
padding:0 15px;
}
.Jiaheactivity .pubox-top{
width: 100%;
height: 45px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
color: #111;
}
::-webkit-scrollbar{
display:none;
}
.Jiaheactivity .foritem{
height: 30px;
font-size: 12px;
padding: 0 12px;
display: flex;
align-items: center;
border-radius: 15px;
margin-right: 25px;
margin-bottom: 15px;
}
.ht-box{
padding:0 15px;
display: flex;
flex-wrap: wrap;
margin-top: 10px;
}
</style>
<template>
<view class="mysignupList" >
<u-tabs
:list="list"
:is-scroll="false"
:current="current"
@change="change"
:active-color="mainColor"
></u-tabs>
<u-empty v-if="g.length == 0" text="暂无报名记录" mode="list"></u-empty>
<view
v-if="g.length > 0"
style="
height: calc(100vh - 90px);
width: calc(100vw);
overflow: hidden;
padding-bottom: 50px;
"
>
<scroll-view
:scroll-y="true"
:enable-back-to-top="true"
:enable-flex="true"
@scrolltolower="lower"
:style="{ height: '100%' }"
>
<view class="details">
<view class="item" v-for="(x, i) in g" :key="i" @click="goActiveDetail(x)">
<view class="box-top">
<image :src="x.CoverImg" mode="aspectFill" style="width: 110px;height: 67px;border-radius: 8px;"></image>
<view style="margin-left: 10px;height: 67px;">
<view class="box-title">{{x.ActivityName}}</view>
<view style="font-size: 12px;color: #666666;margin-top: 8px;">活动类型:{{x.TypeName}}</view>
</view>
</view>
<view class="box-top-r-b">
<u-icon name="contact" :size="28" color="#999999" style='margin-right: 5px;' ></u-icon>
<view style="max-width: 280rpx;overflow: hidden;white-space: nowrap;text-overflow: ellipsis">{{x.LinkMan}}</view>
<u-icon name="friends-o" :size="28" color="#999999" style='margin-right: 5px;margin-left: 10px;' ></u-icon>
<view>{{x.PeopleNum}}</view>
<u-icon name="phone-o" :size="28" color="#999999" style='margin-right: 5px;margin-left: 10px;' ></u-icon>
<view>{{x.LinkTel}}</view>
<u-icon name="star-o" :size="28" :color="mainColor" style='margin-right: 5px;margin-left: 10px;' ></u-icon>
<view v-if="x.Money>0" :style="{color:mainColor}">{{x.Money}}</view>
<view v-if="x.Money==0" :style="{color:mainColor}">免费</view>
</view>
<view class="box-Remark">
<view class="box-Remark-top">
<view style="width: calc(100vw - 110px);">
备注:{{x.Remark==''?'无':x.Remark}}
</view>
<view class="box-Remark-top-r" style="color: #00C6C1;" v-if="x.Status!=1 && x.IsApplyForCancel!=1">已报名</view>
<view class="box-Remark-top-r" style="color: #00C6C1;" v-if="x.Status!=1 && x.IsApplyForCancel==1 && x.ApplyForCancelStatus==0">待审核</view>
<view class="box-Remark-top-r" style="color: #00C6C1;" v-if="x.Status!=1 && x.IsApplyForCancel==1 && x.ApplyForCancelStatus==1">通过</view>
<view class="box-Remark-top-r" style="color: #FF4646;" v-if="x.Status!=1 && x.IsApplyForCancel==1 && x.ApplyForCancelStatus==2">拒绝</view>
<view class="box-Remark-top-r" style="color: #FF4646;" v-if="x.Status==1">已取消</view>
</view>
<view class="box-Remark-b" v-if="x.Status!=1 && x.IsApplyForCancel!=1">
<view class="box-Remark-btn" @click.native.stop="cancel(x,i)">
取消
</view>
</view>
<view style="width: calc(100vw - 110px);" v-if="x.CancelRemark!=null && x.CancelRemark!=''">
取消备注:{{x.CancelRemark==''?'无':x.CancelRemark}}
</view>
<view style="width: calc(100vw - 110px);" v-if="x.RejectRemark!=null && x.ApplyForCancelStatus==2">
审核未通过理由:{{x.RejectRemark==''?'无':x.RejectRemark}}
</view>
</view>
</view>
</view>
<u-loadmore
:status="status"
:load-text="loadText"
:font-size="24"
:margin-top="20"
:margin-bottom="20"
bg-color="#FFF"
/>
</scroll-view>
</view>
<!-- 加载中 -->
<view class="loading" v-if="loading">
<u-loading mode="flower" size="48">></u-loading>
<Text style="color: #fff; margin-top: 10rpx;">加载中...</Text>
</view>
<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth= 'gbAuth'></auth>
<u-popup v-model="show" mode="center" length="80%">
<view style='display: flex;flex-direction: column;align-items: center;background: #fff;'>
<view style="display: flex;align-items: center;justify-content: center;height:70px ;">
<Text>是否取消订单?</Text>
</view>
<view style="display: flex;flex-direction: column;height:80px ;margin-left: 15px;width: 100%;" >
<Text style='margin-left: 10px;margin-top: 5px;'>备注</Text>
<input class="uni-input inputM" style='margin-left: 10px;margin-top: 5px;' v-model="cancelRemark" placeholder="输入备注" />
</view>
<view style="display: flex;flex-direction: row;align-items: center;height: 50px;border-top: 1px solid #F5F5F5;width: 100%;">
<view style="width: 50%;display: flex;align-items: center;justify-content: center" @click="show=false">
<Text>取消</Text>
</view>
<view style="width: 50%;color: #a0cfff;display: flex;align-items: center;justify-content: center" @click="queren">
<Text>确定</Text>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import auth from "@/components/auth/index.vue";
export default {
components: {
auth
},
data() {
return {
pageTitle: "报名列表",
showAuth:false,
u:{},
show:false,
current:0,
list: [
{ name: "全部" },
{ name: "正常" },
{ name: "取消" },
],
mainColor: "",
contentHeight: 0,
msg:{
pageIndex: 1,
pageSize:10,
ActivityType:0
},
page_count: 1,
g: [],
loading: false,
status: "loadmore",
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
bmobj:{},
cancelRemark:'',
};
},
created() {
this.contentHeight = this.$utils.calcContentHeight(-40) + "px";
this.mainColor = this.$uiConfig.mainColor;
},
mounted() {
let currentPages = getCurrentPages();
let u = "/" + currentPages[currentPages.length - 1].route;
let pages = wx.getStorageSync("basedata")
? wx.getStorageSync("basedata").bar_title
: [];
pages.forEach((x) => {
if (x.value == u) {
this.pageTitle = x.new_name ? x.new_name : x.name;
}
});
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
onLoad: function (option) {
this.u = uni.getStorageSync("mall_UserInfo");
if (!this.u) {
this.u = {
nickName: "未登录",
avatarUrl: ""
};
this.showAuth = true;
} else{
this.init();
}
},
methods: {
change(index) {
this.current = index
if(index==0){
this.msg.ActivityType = 0
}else{
this.msg.ActivityType = index;
}
this.msg.pageIndex = 1;
this.g = [];
this.loading = true;
this.init();
},
getfzuj(){
this.current = 0
this.init();
},
init() {
this.request2(
{
url: '/api/AppletEducation/GetUserActivityList',
data: this.msg
},
res => {
if(res.resultCode==1){
this.loading = false;
this.g = this.g.concat(res.data.pageData);
this.page_count = res.data.pageCount;
if (this.page_count == 1) {
this.status = "nomore";
}
}
}
);
},
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.init();
} else {
this.status = "nomore";
}
},
reloadUserinfo() {
this.u = uni.getStorageSync("mall_UserInfo");
// this.showAuth=false;
this.init();
},
//关闭登录窗口
gbAuth(){
uni.navigateBack()
},
cancel(x,i){
this.bmobj={
ActivityId:x.ActivityId,
index:i
}
this.show=true
},
queren(){
this.request2(
{
url: '/api/AppletTrade/CancelCommerceConsult',
data: {ActivityId:this.bmobj.ActivityId,CancelRemark:this.cancelRemark}
},
res => {
if(res.resultCode==1){
uni.showToast({
title: '操作成功',
icon: 'success',
})
if(res.data != 1){
if(this.msg.ActivityType==1){
this.g.splice(this.bmobj.index,1)
}else{
this.g[this.bmobj.index].Status=1
}
}else{
this.g[this.bmobj.index].IsApplyForCancel=1;
this.g[this.bmobj.index].CancelRemark = this.cancelRemark;
}
this.show=false
}
}
);
},
//跳转至活动详情
goActiveDetail(item){
uni.navigateTo({
url: '/pages/kotra/activeInnerDetail?Id=' + item.ActivityId +'&isFromActive='+'1',
});
}
},
};
</script>
<style>
.mysignupList {
width: 100%;
height: calc(100vh - 50px);
background: #FFF;
position: relative;
}
.mysignupList .loading {
width: 180rpx;
height: 180rpx;
background: #000000;
opacity: 0.7;
border-radius: 10rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: fixed;
left: 50%;
top: 30%;
margin-left: -100rpx;
z-index: 999;
}
.mysignupList .details{
padding: 15px;
display: flex;
flex-direction: column;
}
.mysignupList .item{
margin-bottom: 15px;
}
.mysignupList .box-top{
width: 100%;
height: 67px;
display: flex;
align-items: center;
}
.mysignupList .box-title{
width: calc(100vw - 30px - 110px - 10px);
font-size: 15px;
color: #000000;font-weight: 500;
line-height: 22px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.mysignupList .box-top-r-b{
width: 100%;
display: flex;
align-items: center;
font-size: 13px;
color: #666666;
margin-top: 10px;
}
.mysignupList .box-Remark{
width: 100%;
padding: 14px 10px;
font-size: 11px;
color: #777777;
background: #EDEDED;
margin-top: 13px;
border-radius: 6px;
}
.mysignupList .box-Remark-top{
width: 100%;
display: flex;
align-items: flex-start;
justify-content: space-between;
}
.mysignupList .box-Remark-top-r{
font-size: 11px;
}
.mysignupList .box-Remark-b{
width: 100%;
display: flex;
justify-content: flex-end;
margin-top: 5px;
}
.mysignupList .box-Remark-btn{
width: 60px;
height: 25px;
border-radius: 12.5px;
border:1px solid #333333;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
color: #333333;
}
</style>
<style>
.stickSignUp {
width: 100%;
height: 100vh;
background: #FFF;
}
.stickSignUp .box{
padding: 15px;
border-bottom: 1px solid #E2E2E2;
}
.stickSignUp .box-top{
width: 100%;
height: 67px;
display: flex;
align-items: center;
}
.stickSignUp .box-title{
width: calc(100vw - 30px - 110px - 10px);
height: 67px;
font-size: 15px;
color: #000000;font-weight: 500;
line-height: 22px;
margin-left: 10px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.stickSignUp .box-c{
padding: 15px;
}
.stickSignUp .box-c-i{
width: 100%;
height: 52px;
display:flex;
align-items: center;
border-bottom: 1px solid #E2E2E2;
}
.stickSignUp .box-c-i input{
font-size: 12px;
width: calc(100vw - 30px - 70px);
}
.stickSignUp .box-c-l{
width: 70px;
font-size: 12px;
color: #666666;
}
.btn{
width: 100%;
height: 45px;
border-radius: 22px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: #FFFFFF;
margin: 30px 0;
}
</style>
<template>
<view class="stickSignUp" >
<view class="box">
<view class="box-top">
<image :src="details.CoverImg" mode="aspectFill" style="width: 110px;height: 67px;border-radius: 8px;"></image>
<view class="box-title">{{details.ActivityName}}</view>
</view>
</view>
<view class="box-c">
<view style="font-size: 16px;color: #111111;">请填写报名资料</view>
<view class="box-c-i">
<view class="box-c-l">姓名</view>
<input type="text" v-model="addMsg.LinkMan" placeholder="请填写姓名">
</view>
<view class="box-c-i">
<view class="box-c-l">联系电话</view>
<input type="number" v-model="addMsg.LinkTel" placeholder="请填写联系电话">
</view>
<view class="box-c-i">
<view class="box-c-l">报名人数</view>
<u-number-box v-model="addMsg.PeopleNum" :min='1' :disabled='true' @change="valChange"></u-number-box>
</view>
<view class="box-c-i">
<view class="box-c-l">备注</view>
<input type="text" v-model="addMsg.Remark" placeholder="请填写备注内容">
</view>
<view class="box-c-i">
<view class="box-c-l">支付方式</view>
<u-radio-group v-model="addMsg.PaymentWay" >
<u-radio
shape="circle"
:active-color='mainColor'
@change="radioChange"
v-for="(item, index) in list" :key="index"
:name="item.Id"
>
{{item.name}}
</u-radio>
</u-radio-group>
</view>
<view class="box-c-i" v-if="details.IsFree==2" style="justify-content: flex-end;border-bottom: none;height: 35px;margin-top: 10px;">
<view><text class="box-c-l">{{addMsg.PaymentWay==1?'现金单价:':'点数单价:'}} </text>{{addMsg.UnitPrice}}{{addMsg.PaymentWay==1?'元':'点'}}</view>
</view>
<view class="box-c-i" v-if="details.IsFree==2" style="justify-content: flex-end;border-bottom: none;height: 35px;">
<view><text class="box-c-l">{{addMsg.PaymentWay==1?'现金总价:':'点数总价:'}}</text>{{addMsg.Money}}{{addMsg.PaymentWay==1?'元':'点'}}</view>
</view>
<view class="box-c-i" v-if="details.IsFree==1" style="justify-content: flex-end;border-bottom: none;height: 35px;">
<view class="box-c-l" style="text-align: right;">免费</view>
</view>
<view class="btn" @click="signup" :style="{background:mainColor}">
报名
</view>
</view>
</view>
</template>
<script>
export default {
components: {
},
data() {
return {
pageTitle: "报名订单",
mainColor:'',
details:{},
addMsg:{
ActivityId:0,
LinkMan:'',
LinkTel:'',
Remark:'',
PeopleNum:1,
UnitPrice:0,
Money:0,
PaymentWay:1,
PayWay:1,
UnitPoint:0,
TotalPoint:0,
},
list: [{name: '在线支付',Id: 1},{name: '点数支付',Id: 6}],
};
},
created() {
this.contentHeight = this.$utils.calcContentHeight(-40) + "px";
this.mainColor = this.$uiConfig.mainColor;
},
mounted() {
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
onLoad: function (option) {
this.details = JSON.parse(decodeURIComponent(option.details))
this.addMsg.ActivityId = this.details.Id
if(this.details.IsFree==1){
this.addMsg.PaymentWay = 6;
}else{
this.addMsg.UnitPrice = this.details.Price;
this.addMsg.UnitPoint = this.details.PointNum;
this.addMsg.Money = this.addMsg.UnitPrice * this.addMsg.PeopleNum;
this.addMsg.TotalPoint = this.addMsg.UnitPoint * this.addMsg.PeopleNum;
}
},
methods: {
valChange(e){
this.addMsg.PeopleNum = e.value
this.addMsg.Money = this.addMsg.UnitPrice * this.addMsg.PeopleNum;
},
radioChange(){
// console.log(this.addMsg.PaymentWay)
},
signup(){
let pages = getCurrentPages(); // 当前页面
let beforePage = pages[pages.length - 3]; // 前2个页面
uni.navigateBack({
delta: 2,
success: function() {
beforePage.$vm.getorder(); // 执行前一个页面的方法
}
});
if(this.addMsg.LinkMan == ''){
uni.showToast({
title: '请填写姓名',
icon: 'none',
})
return
}
if(this.addMsg.LinkTel == ''){
uni.showToast({
title: '请填写联系电话',
icon: 'none',
})
return
}
uni.showLoading({
title: '报名中'
});
this.request2({
url: '/api/WeChatPay/SetActivityEnrollInfo',
data: this.addMsg
},
res => {
uni.hideLoading()
if (res.resultCode == 1) {
uni.showToast({
title:'报名成功',
icon: 'none',
duration: 2000
});
setTimeout(()=>{
uni.navigateBack({
delta: 2,
success: function() {
beforePage.$vm.getSmallShopsGoodsPricePageList(2); // 执行前一个页面的方法
}
});
},1000)
}
},
error=>{
console.log('进入错误')
uni.hideLoading()
}
);
}
},
};
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment