This commit is contained in:
2025-09-24 21:26:57 +08:00
parent 99a2748330
commit f9adf7c4fd
10 changed files with 489 additions and 192 deletions
@@ -152,12 +152,25 @@ layout("/mobile/platform.html"){
.van-tabs__nav--complete {
padding: 0;
}
.risk-dialog-wrapper {
display: flex;
flex-direction: column;
max-height: 70vh; /* 限制 ActionSheet 最大高度,避免全屏 */
padding: 16px;
box-sizing: border-box;
}
.remark-scrollable {
flex: 1;
overflow-y: auto; /* 内容超出时滚动 */
padding-bottom: 16px; /* 给按钮留点空间 */
}
.remark-content{
width: 100%;
max-width: 100%;
height: calc(100vh - 46px - 44px);
overflow-y: auto;
/* height: calc(100vh - 46px - 44px);
overflow-y: auto;*/
}
.remark-content *{
@@ -272,7 +285,7 @@ layout("/mobile/platform.html"){
<van-button type="primary" color="#1867b0" round size="mini"
v-if="activityStatus !== '1' && o.isSign === false"
style="position: absolute; left: 74%; bottom: 10%; width: 74px; height: 28px"
@click.stop="signUp(o)">
@click.stop="openRiskText(o)">
我要报名
</van-button>
@@ -434,6 +447,20 @@ layout("/mobile/platform.html"){
</van-tabs>
</van-popup>
<van-action-sheet v-model="riskTextDialogVisible" closeable :close-on-click-overlay="false"
title="风险告知书">
<div class="risk-dialog-wrapper">
<div class="remark-scrollable">
<div class="remark-content" v-html="activity.riskText"></div>
</div>
<van-button :color="themeColor" @click="riskTextDialogVisible=false;signUp(choose)"
block style="border-radius: 10px; margin-top: 16px;"
type="info" :disabled="submitDisabled">
{{ seconds <= 0 ? '去报名' :(seconds+'秒后去报名') }}
</van-button>
</div>
</van-action-sheet>
<div>
<van-tabbar v-model="tarBarActive">
<van-tabbar-item icon="home-o" replace @click="pjaxReplace('/platform/mobile/trainSignUpActivity/trainList')">活动报名</van-tabbar-item>
@@ -498,12 +525,42 @@ layout("/mobile/platform.html"){
clickCourseRemark: {},
signUsers: [],
riskTextDialogVisible: false,
submitDisabled: false,
seconds: 0,
interval: null
}
},
components: {
'train-dynamic-form': httpVueLoader('/components/mobile/common/TrainDynamicForm.vue')
},
methods: {
openRiskText(o) {
this.choose = o
if (this.activity.riskText) {
this.openInterval()
return
}
this.signUp(o)
},
openInterval() {
this.seconds = 3
this.submitDisabled = true
this.riskTextDialogVisible = true
this.$nextTick(() => {
this.interval = setInterval(() => {
this.seconds--
if (this.seconds <= 0) {
this.seconds = 0
this.submitDisabled = false
clearInterval(this.interval)
this.interval = null
}
}, 1000)
})
},
async remarkActiveClick(name, title) {
if (name === 1) {
//获取报名人员