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
@@ -10,16 +10,30 @@ layout("/mobile/platform.html"){
width: 100%;
}
.remark-content{
.remark-content {
width: 100%;
max-width: 100%;
height: calc(100vh - 46px - 44px);
overflow-y: auto;
padding: 10px;
/* height: calc(100vh - 46px - 44px);
overflow-y: auto;
padding: 10px;*/
}
.remark-content *{
max-width: 100%!important;
.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 * {
max-width: 100% !important;
}
.joinPopup {
@@ -38,7 +52,7 @@ layout("/mobile/platform.html"){
<div style="margin: 20px 20px 10px 20px"
v-if="moment(o.applyStartTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.applyEndTime).valueOf()">
<van-button :color="themeColor" @click="doSave()"
<van-button :color="themeColor" @click="openRiskText"
block style="border-radius: 10px"
type="info"
v-if="!isRegister && !isRegisterFull">
@@ -79,9 +93,23 @@ layout("/mobile/platform.html"){
</div>-->
<van-popup class="joinPopup" position="right" v-model:show="showActivityInfoPopup">
<van-nav-bar @click-left="showActivityInfoPopup = false" fixed left-arrow placeholder title="活动内容"></van-nav-bar>
<van-nav-bar @click-left="showActivityInfoPopup = false" fixed left-arrow placeholder
title="活动内容"></van-nav-bar>
<div class="remark-content" v-html="activityContent" @click="remarkClick"></div>
</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="o.riskText"></div>
</div>
<van-button :color="themeColor" @click=" doSave()"
block style="border-radius: 10px; margin-top: 16px;"
type="info" :disabled="submitDisabled">
{{ seconds <= 0 ? '去报名' :(seconds+'秒后去报名') }}
</van-button>
</div>
</van-action-sheet>
</div>
@@ -99,17 +127,46 @@ layout("/mobile/platform.html"){
isSign: false,
activityContent: '',
showActivityInfoPopup: false
showActivityInfoPopup: false,
riskTextDialogVisible: false,
submitDisabled: false,
seconds: 0,
interval: null
}
},
methods: {
remarkClick(event){
openRiskText() {
if (this.o.riskText) {
this.openInterval()
return
}
this.doSave()
},
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)
})
},
remarkClick(event) {
//如果点击的是图片
if(event.target.tagName === 'IMG'){
if (event.target.tagName === 'IMG') {
vant.ImagePreview([event.target.src])
}
},
showActivityInfo(activityContent){
showActivityInfo(activityContent) {
console.log(activityContent)
this.activityContent = ''
this.activityContent = activityContent
@@ -177,7 +234,8 @@ layout("/mobile/platform.html"){
message: resp.msg,
}).then(() => {
window.location.reload()
}).catch(() => {})
}).catch(() => {
})
// setTimeout(() => {
// this.$toast.success(resp.msg)
// pjaxReplace('/mobile/activity/unionActivity')
@@ -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) {
//获取报名人员