This commit is contained in:
2026-04-14 10:29:00 +08:00
parent 5fe73bf0e2
commit e2b6568552
@@ -39,6 +39,42 @@ layout("/mobile/platform.html"){
font-size: 12px; font-size: 12px;
} }
.train-card {
position: relative;
overflow: hidden;
}
.train-card-actions {
display: flex;
justify-content: flex-end;
align-items: center;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
}
.train-card-button {
width: 74px;
height: 28px;
}
.train-card-status {
width: 74px;
text-align: right;
line-height: 1;
}
.train-card-status image {
width: 52px;
height: auto;
}
.train-list-wrapper {
/* 给底部固定 tabbar 和安全区预留空间,避免最后一张卡片被遮挡 */
padding-bottom: calc(80px + env(safe-area-inset-bottom));
box-sizing: border-box;
}
.train-title { .train-title {
color: grey; color: grey;
} }
@@ -152,6 +188,7 @@ layout("/mobile/platform.html"){
.van-tabs__nav--complete { .van-tabs__nav--complete {
padding: 0; padding: 0;
} }
.risk-dialog-wrapper { .risk-dialog-wrapper {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -186,14 +223,17 @@ layout("/mobile/platform.html"){
font-size: 13px; font-size: 13px;
table-layout: fixed; table-layout: fixed;
border-collapse: collapse; border-collapse: collapse;
th { th {
background-color: #f2f2f2; background-color: #f2f2f2;
border: 1px solid #dddddd; border: 1px solid #dddddd;
} }
tr { tr {
text-align: center; text-align: center;
border-bottom: 1px solid #dddddd; border-bottom: 1px solid #dddddd;
} }
td { td {
border: 1px solid #dddddd; border: 1px solid #dddddd;
} }
@@ -209,24 +249,24 @@ layout("/mobile/platform.html"){
:options="activityOptions"></van-dropdown-item> :options="activityOptions"></van-dropdown-item>
<van-dropdown-item @change="courseChange" v-model="courseType" :options="courseOptions"></van-dropdown-item> <van-dropdown-item @change="courseChange" v-model="courseType" :options="courseOptions"></van-dropdown-item>
</van-dropdown-menu> </van-dropdown-menu>
</van-sticky>
<van-tabs v-if="activityStatus != '1' && assortList.length > 0" v-model="assort" type="card" color="#1867B0" <van-tabs v-if="activityStatus != '1' && assortList.length > 0" v-model="assort" color="#1867B0"
style="margin-top: 10px" @click="tabClick"> @click="tabClick">
<van-tab v-for="item in assortList" :name="item" :title="item"> <van-tab v-for="item in assortList" :name="item" :title="item">
</van-tab> </van-tab>
</van-tabs> </van-tabs>
</van-sticky>
<!--<van-notice-bar <!--<van-notice-bar
left-icon="volume-o" left-icon="volume-o"
text="温馨提示:每人只能填报一项活动"> text="温馨提示:每人只能填报一项活动">
</van-notice-bar>--> </van-notice-bar>-->
<template> <template>
<div id="parentDiv" v-model="loading" v-if="tableData.courseList && tableData.courseList.length>0" style="margin-bottom: 60px"> <div id="parentDiv" class="train-list-wrapper" v-model="loading"
v-if="tableData.courseList && tableData.courseList.length>0">
<template v-for="o in tableData.courseList"> <template v-for="o in tableData.courseList">
<div style="position: relative" <div class="train-card"
:class="activityStatus !== '1' ? 'van-doc-card' : 'van-doc-card-my'"> :class="activityStatus !== '1' ? 'van-doc-card' : 'van-doc-card-my'">
<div> <div>
<van-tag type="primary" size="medium"> <van-tag type="primary" size="medium">
@@ -282,23 +322,27 @@ layout("/mobile/platform.html"){
v-if="o.isSign === true && tableData.wechat" v-if="o.isSign === true && tableData.wechat"
style="color: #dd6363">点我查看微信群二维码</span> style="color: #dd6363">点我查看微信群二维码</span>
</div> </div>
<div class="train-card-actions"
v-if="activityStatus !== '1' || (o.isSign === true && moment().valueOf() < moment(activity.activitySignUpEndTime).valueOf())">
<van-button type="primary" color="#1867b0" round size="mini" <van-button type="primary" color="#1867b0" round size="mini"
class="train-card-button"
v-if="activityStatus !== '1' && o.isSign === false" v-if="activityStatus !== '1' && o.isSign === false"
style="position: absolute; left: 74%; bottom: 10%; width: 74px; height: 28px"
@click.stop="openRiskText(o)"> @click.stop="openRiskText(o)">
我要报名 我要报名
</van-button> </van-button>
<van-button type="primary" color="#dd6363" round size="mini" <van-button type="primary" color="#dd6363" round size="mini"
class="train-card-button"
v-if="o.isSign === true && moment().valueOf() < moment(activity.activitySignUpEndTime).valueOf()" v-if="o.isSign === true && moment().valueOf() < moment(activity.activitySignUpEndTime).valueOf()"
style="position: absolute; left: 74%; bottom: 10%; width: 74px; height: 28px"
@click.stop="cancel(o)"> @click.stop="cancel(o)">
取消报名 取消报名
</van-button> </van-button>
<image v-if="activityStatus !== '1' && o.isSign === true && moment().valueOf() >= moment(activity.activitySignUpEndTime).valueOf()" <div class="train-card-status"
style="position: absolute; left: 77%; top: 58%;" v-if="activityStatus !== '1' && o.isSign === true && moment().valueOf() >= moment(activity.activitySignUpEndTime).valueOf()">
src="/assets/mobile/svg/train/sign_up.svg"></image> <image src="/assets/mobile/svg/train/sign_up.svg"></image>
</div>
</div>
<!-- <div @click="trainClick(o)" v-if="activityStatus === '1'"--> <!-- <div @click="trainClick(o)" v-if="activityStatus === '1'"-->
<!-- style="text-align: center; line-height: 40px; width: 40px; height: 40px;display: inline-block; font-size: 14px;--> <!-- style="text-align: center; line-height: 40px; width: 40px; height: 40px;display: inline-block; font-size: 14px;-->
@@ -383,7 +427,8 @@ layout("/mobile/platform.html"){
<van-field label="联系方式" required :rules="[{ required: true, message: '请填写联系方式' }]" <van-field label="联系方式" required :rules="[{ required: true, message: '请填写联系方式' }]"
placeholder="请填写联系方式" v-model="formData.mobile"></van-field> placeholder="请填写联系方式" v-model="formData.mobile"></van-field>
<template v-if="this.choose.courseIsLimitApply"> <template v-if="this.choose.courseIsLimitApply">
<van-field label="报名时段" required :rules="[{ required: true, message: '请选择报名时段' }]" <van-field label="报名时段" required
:rules="[{ required: true, message: '请选择报名时段' }]"
readonly @click="showCoursePicker = true;getCourseTimeSelectList(choose);" readonly @click="showCoursePicker = true;getCourseTimeSelectList(choose);"
placeholder="请选择报名时段" v-model="formData.courseTimeName"></van-field> placeholder="请选择报名时段" v-model="formData.courseTimeName"></van-field>
<van-popup v-model="showCoursePicker" position="bottom"> <van-popup v-model="showCoursePicker" position="bottom">
@@ -410,17 +455,21 @@ layout("/mobile/platform.html"){
</van-action-sheet>--> </van-action-sheet>-->
<van-popup class="joinPopup" position="right" v-model:show="remarkShow"> <van-popup class="joinPopup" position="right" v-model:show="remarkShow">
<van-nav-bar @click-left="remarkShow = false" fixed left-arrow placeholder :title="clickCourseRemark.courseName"></van-nav-bar> <van-nav-bar @click-left="remarkShow = false" fixed left-arrow placeholder
:title="clickCourseRemark.courseName"></van-nav-bar>
<van-tabs v-model="remarkActive" @change="remarkActiveClick"> <van-tabs v-model="remarkActive" @change="remarkActiveClick">
<van-tab title="详细信息"> <van-tab title="详细信息">
<div class="remark-content" v-html="courseRemark" @click="remarkClick"></div> <div class="remark-content" v-html="courseRemark" @click="remarkClick"></div>
</van-tab> </van-tab>
<van-tab title="报名人员"> <van-tab title="报名人员">
<van-dropdown-menu active-color="#1989fa"> <van-dropdown-menu active-color="#1989fa">
<van-dropdown-item v-model="registerForm.unionId" @change="getSignUsers" :options="unionList"></van-dropdown-item> <van-dropdown-item v-model="registerForm.unionId" @change="getSignUsers"
<van-dropdown-item v-model="registerForm.sex" @change="getSignUsers" :options="sexList"></van-dropdown-item> :options="unionList"></van-dropdown-item>
<van-dropdown-item v-model="registerForm.sex" @change="getSignUsers"
:options="sexList"></van-dropdown-item>
</van-dropdown-menu> </van-dropdown-menu>
<van-search v-model="registerForm.searchKeyword" placeholder="请输入姓名查询" @search="getSignUsers"></van-search> <van-search v-model="registerForm.searchKeyword" placeholder="请输入姓名查询"
@search="getSignUsers"></van-search>
<table class="table-class" v-if="signUsers && signUsers.length > 0"> <table class="table-class" v-if="signUsers && signUsers.length > 0">
<thead> <thead>
<tr> <tr>
@@ -463,8 +512,12 @@ layout("/mobile/platform.html"){
<div> <div>
<van-tabbar v-model="tarBarActive"> <van-tabbar v-model="tarBarActive">
<van-tabbar-item icon="home-o" replace @click="pjaxReplace('/platform/mobile/trainSignUpActivity/trainList')">活动报名</van-tabbar-item> <van-tabbar-item icon="home-o" replace
<van-tabbar-item icon="manager-o" replace @click="pjaxReplace('/platform/mobile/trainSignUpActivity/trainList?type=my')">我的活动</van-tabbar-item> @click="pjaxReplace('/platform/mobile/trainSignUpActivity/trainList')">活动报名
</van-tabbar-item>
<van-tabbar-item icon="manager-o" replace
@click="pjaxReplace('/platform/mobile/trainSignUpActivity/trainList?type=my')">我的活动
</van-tabbar-item>
</van-tabbar> </van-tabbar>
</div> </div>
</div> </div>
@@ -573,7 +626,7 @@ layout("/mobile/platform.html"){
this.signUsers = data this.signUsers = data
}, },
tabClick(name, title) { tabClick(name, title) {
if(this.courseType === '0' && this.activityStatus !== '1') { if (this.courseType === '0' && this.activityStatus !== '1') {
this.tableData.courseList = this.tempArray.courseList.filter(o => o.assort === title) this.tableData.courseList = this.tempArray.courseList.filter(o => o.assort === title)
} else { } else {
this.tableData.courseList = this.tempArray.courseList.filter(o => o.assort === title && o.courseType === this.courseType) this.tableData.courseList = this.tempArray.courseList.filter(o => o.assort === title && o.courseType === this.courseType)