This commit is contained in:
JyuHsin
2025-06-13 09:20:55 +08:00
parent 848fb8a9c7
commit f852424c20
5 changed files with 117 additions and 173 deletions
@@ -228,7 +228,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
cnd.and("b.id", "in", list); cnd.and("b.id", "in", list);
} }
cnd.asc("sortNumber"); cnd.asc("sortNumber * 1");
taSql.setCondition(cnd); taSql.setCondition(cnd);
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), taSql); return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), taSql);
} }
@@ -609,7 +609,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
} }
//判断人数报满没有 //判断人数报满没有
if(lineUnionSelect.getMaxGroupSize() > 0) { if(lineUnionSelect.getMaxGroupSize() != null && lineUnionSelect.getMaxGroupSize() > 0) {
Map<Boolean, String> validSignCountMap = validSignCount(enrollInfo, config, lineUnionSelect.getMaxGroupSize(), StrUtil.isBlank(enrollInfo.getId()) ? "add" : "edit"); Map<Boolean, String> validSignCountMap = validSignCount(enrollInfo, config, lineUnionSelect.getMaxGroupSize(), StrUtil.isBlank(enrollInfo.getId()) ? "add" : "edit");
if (validSignCountMap.containsKey(false)) { if (validSignCountMap.containsKey(false)) {
return validSignCountMap; return validSignCountMap;
@@ -293,9 +293,10 @@ layout("/mobile/platform.html"){
</div> </div>
</div> </div>
<van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider> <van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider>
<div class="pdf_div">
<div v-if="isPdf" v-html="baseData.content" class="content"></div> <div v-if="isPdf" v-html="baseData.content" class="content"></div>
<div v-else id="demo" class="pdf_div"></div> <div v-else id="demo" class="pdf_div"></div>
</div>
</div> </div>
</van-skeleton> </van-skeleton>
@@ -313,6 +314,8 @@ layout("/mobile/platform.html"){
<van-button v-if="moment().unix() >= moment(configData.fragmentStartTime).unix() && moment().unix() <= moment(configData.fragmentEndTime).unix()" @click="join" <van-button v-if="moment().unix() >= moment(configData.fragmentStartTime).unix() && moment().unix() <= moment(configData.fragmentEndTime).unix()" @click="join"
class="join">{{ enrollId ? '修改报名' : '我要报名' }} class="join">{{ enrollId ? '修改报名' : '我要报名' }}
</van-button> </van-button>
<van-button v-if="moment().unix() < moment(configData.fragmentStartTime).unix()" class="join">报名未开始
</van-button>
<van-button v-if="moment().unix() > moment(configData.fragmentEndTime).unix()" class="join">报名结束 <van-button v-if="moment().unix() > moment(configData.fragmentEndTime).unix()" class="join">报名结束
</van-button> </van-button>
</div> </div>
@@ -915,19 +918,22 @@ layout("/mobile/platform.html"){
} }
}, },
readPDFPicture(pdf) { readPDFPicture(pdf) {
const that = this
if(pdf != null) { if(pdf != null) {
pdf.on("complete", function () { pdf.on("complete", function () {
const imgDoc = document.querySelectorAll('img') const elements = document.querySelectorAll('[class*="canvasImg"]')
let array = []
let classArray = [] let classArray = []
imgDoc.forEach(o => { elements.forEach(element => {
if(o.getAttribute('class') !== 'top_icon') { classArray.push(element.getAttribute('src'))
classArray.push(o.getAttribute('class'))
array.push(o.getAttribute('src'))
}
}) })
document.addEventListener('click', (event) => that.handleClick(event, classArray, array)) elements.forEach((element,index) => {
element.addEventListener('click', function() {
vant.ImagePreview({
images: classArray,
startPosition: index,
closeable: true,
})
});
});
}) })
} }
}, },
@@ -956,19 +962,12 @@ layout("/mobile/platform.html"){
}) })
}catch (e) { }catch (e) {
this.isPdf = true this.isPdf = true
//document.addEventListener('click', (event) => this.handleClick(event))
} }
this.$nextTick(() => { this.$nextTick(() => {
this.readPDFPicture(pdfh5) this.readPDFPicture(pdfh5)
}) })
}, },
mounted() {
//window.addEventListener('scroll', this.scrollToTop)
},
destroyed() {
},
}) })
</script> </script>
@@ -36,6 +36,10 @@ layout("/mobile/platform.html"){
overflow-y: auto; overflow-y: auto;
} }
.pdfjs .backTop {
bottom: 30px;
}
</style> </style>
<div id="app" v-cloak> <div id="app" v-cloak>
@@ -123,40 +127,22 @@ layout("/mobile/platform.html"){
}) })
}catch (e) { }catch (e) {
this.isPdf = true this.isPdf = true
document.addEventListener('click', function (event) {
// 打印被点击的元素标签名和 class
if (event.target.tagName === 'IMG' && !['van-image__img', 'top_icon'].includes(event.target.className)) {
vant.ImagePreview({
images: [event.target.src],
closeable: true,
})
} }
})
}
this.$nextTick(() => { this.$nextTick(() => {
pdfh5.on("complete", function () { pdfh5.on("complete", function () {
const imgDoc = document.querySelectorAll('img') const elements = document.querySelectorAll('[class*="canvasImg"]')
let array = []
let classArray = [] let classArray = []
imgDoc.forEach(o => { elements.forEach(element => {
if(!['van-image__img', 'top_icon'].includes(o.getAttribute('class'))) { classArray.push(element.getAttribute('src'))
classArray.push(o.getAttribute('class'))
array.push(o.getAttribute('src'))
}
}) })
document.addEventListener('click', function (event) { elements.forEach((element,index) => {
// 打印被点击的元素标签名和 class element.addEventListener('click', function() {
if (event.target.tagName === 'IMG' && !['van-image__img', 'top_icon'].includes(event.target.className)) {
const index = classArray.indexOf(event.target.className)
if(index !== -1) {
vant.ImagePreview({ vant.ImagePreview({
images: array, images: classArray,
startPosition: index, startPosition: index,
closeable: true, closeable: true,
}) })
} })
}
}) })
}) })
}) })
@@ -6,7 +6,6 @@ layout("/mobile/platform.html"){
#app { #app {
font-family: ,serif; font-family: ,serif;
} }
.container img { .container img {
background-size: contain; background-size: contain;
width: 100%; width: 100%;
@@ -14,50 +13,43 @@ layout("/mobile/platform.html"){
margin: 5px auto; margin: 5px auto;
display: block; display: block;
} }
.header { .header {
padding: 10px 20px 0; padding: 10px 20px 0;
} }
.content { .content {
line-height: 26px; line-height: 26px;
padding: 0px 10px 56px 10px; padding: 0 10px 56px 10px;
} }
.pdf_div { .pdf_div {
padding-bottom: 70px; height: calc(100vh - 350px);
height: calc(100vh - 46px - 60px - 151px - 160px); position: relative;
}
.pdfjs {
overflow-y: auto; overflow-y: auto;
} }
/*.backTop { .pdfjs .backTop {
display: none !important; bottom: 30px;
}*/ }
.title { .title {
font-weight: bold; font-weight: bold;
font-size: 19px; font-size: 19px;
color: #505050; color: #505050;
margin-bottom: 10px; margin-bottom: 10px;
} }
.van-divider { .van-divider {
border-color: grey; border-color: grey;
margin: 0; margin: 0;
} }
.van-skeleton { .van-skeleton {
padding: 20px; padding: 20px;
} }
.van-skeleton__content { .van-skeleton__content {
height: 600px; height: 600px;
padding-top: 60px; padding-top: 60px;
} }
.van-skeleton__row, .van-skeleton__title { .van-skeleton__row, .van-skeleton__title {
height: 30px; height: 30px;
} }
.footer { .footer {
background-color: white; background-color: white;
position: fixed; position: fixed;
@@ -69,39 +61,32 @@ layout("/mobile/platform.html"){
align-items: center; align-items: center;
left: 0; left: 0;
} }
.footer .van-button { .footer .van-button {
height: 34px; height: 34px;
border-radius: 6px; border-radius: 6px;
width: 90% !important; width: 90% !important;
} }
.family_join { .family_join {
background-color: #ff976a; background-color: #ff976a;
color: white; color: white;
} }
.join { .join {
background-color: #0e78c5; background-color: #0e78c5;
color: white; color: white;
} }
.joinPopup { .joinPopup {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #f6f7f9; background-color: #f6f7f9;
} }
.join_content { .join_content {
padding: 20px; padding: 20px;
height: calc(100% - 26px - 60px); height: calc(100% - 26px - 60px);
overflow-y: auto; overflow-y: auto;
} }
.join_submit { .join_submit {
width: 90% !important; width: 90% !important;
} }
.van-doc-card { .van-doc-card {
background-color: #fff; background-color: #fff;
border-radius: 6px; border-radius: 6px;
@@ -109,7 +94,6 @@ layout("/mobile/platform.html"){
line-height: 20px; line-height: 20px;
position: relative; position: relative;
} }
.van-card-header { .van-card-header {
padding: 14px 20px; padding: 14px 20px;
border-bottom: 1px solid #ebeef5; border-bottom: 1px solid #ebeef5;
@@ -117,11 +101,9 @@ layout("/mobile/platform.html"){
color: #0e78c5; color: #0e78c5;
font-weight: bold; font-weight: bold;
} }
.van-card-body { .van-card-body {
padding: 0px 10px 0px 10px padding: 0 10px 0 10px
} }
.van-doc-card > div:first-child { .van-doc-card > div:first-child {
border: 2px #0e78c5 solid; border: 2px #0e78c5 solid;
width: 26px; width: 26px;
@@ -130,56 +112,44 @@ layout("/mobile/platform.html"){
top: 0; top: 0;
left: 20px; left: 20px;
} }
.van-cell { .van-cell {
padding: 8px 5px; padding: 8px 5px;
} }
.van-tabs__wrap { .van-tabs__wrap {
margin: 6px; margin: 6px;
} }
.van-tabs__nav--card { .van-tabs__nav--card {
border: none; border: none;
} }
.van-tabs__nav--card .van-tab.van-tab--active { .van-tabs__nav--card .van-tab.van-tab--active {
border-radius: 6px; border-radius: 6px;
} }
.van-tabs__nav--card .van-tab { .van-tabs__nav--card .van-tab {
border-right: 0 !important; border-right: 0 !important;
} }
.top_icon { .top_icon {
position: fixed; position: fixed;
bottom: 80px; bottom: 80px;
right: 20px; right: 20px;
} }
.van-field__control { .van-field__control {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.list-card { .list-card {
width: auto; width: auto;
} }
.companionList_empty_text { .companionList_empty_text {
text-align: center; text-align: center;
padding: 10px 0px; padding: 10px 0;
font-size: 14px; font-size: 14px;
color: grey; color: grey;
} }
.header div span { .header div span {
color: grey; color: grey;
} }
.header :last-child { .header :last-child {
font-size: 14px; font-size: 14px;
} }
.van-empty { .van-empty {
position: relative; position: relative;
transform: none; transform: none;
@@ -188,7 +158,6 @@ layout("/mobile/platform.html"){
background-color: transparent; background-color: transparent;
height: calc(100vh - 46px - 153px - 60px); height: calc(100vh - 46px - 153px - 60px);
} }
.submitButton { .submitButton {
background-color: white !important; background-color: white !important;
width: 100%; width: 100%;
@@ -198,25 +167,17 @@ layout("/mobile/platform.html"){
align-items: center;*/ align-items: center;*/
text-align: center; text-align: center;
} }
.submitButton .van-button { .submitButton .van-button {
height: 34px; height: 34px;
border-radius: 6px; border-radius: 6px;
width: 90% !important; width: 90% !important;
} }
.van-image-preview img { .van-image-preview img {
background-color: white; background-color: white;
} }
.van-tag { .van-tag {
color: white !important; color: white !important;
} }
.viewerContainer {
overflow: unset !important;
}
.sign_div { .sign_div {
background-color: white; background-color: white;
margin-bottom: 16px; margin-bottom: 16px;
@@ -251,7 +212,6 @@ layout("/mobile/platform.html"){
<template v-if="isLoad"> <template v-if="isLoad">
<!--线路详情--> <!--线路详情-->
<van-skeleton title :loading="skeLoading" :row="12">
<div class="container"> <div class="container">
<div class="header"> <div class="header">
<div class="title"> <div class="title">
@@ -302,16 +262,11 @@ layout("/mobile/platform.html"){
</div> </div>
</div> </div>
<van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider> <van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider>
<div class="pdf_div">
<div v-if="isPdf" v-html="lineData.content" class="content"></div> <div v-if="isPdf" v-html="lineData.content" class="content"></div>
<div v-else id="demo" class="pdf_div"></div> <div v-else id="demo"></div>
</div>
<!--<van-empty
v-else class="custom-image"
image="https://img01.yzcdn.cn/vant/custom-empty-image.png"
description="暂无详细信息"
></van-empty>-->
</div> </div>
</van-skeleton>
<!--置顶图标--> <!--置顶图标-->
<image v-if="btnFlag" @click="backTop" src="/assets/mobile/svg/therapyRecuperation/top.svg" <image v-if="btnFlag" @click="backTop" src="/assets/mobile/svg/therapyRecuperation/top.svg"
@@ -322,6 +277,8 @@ layout("/mobile/platform.html"){
<van-button v-if="moment().unix() >= moment(configData.implodeStartTime).unix() && moment().unix() <= moment(configData.implodeEndTime).unix()" @click="join" <van-button v-if="moment().unix() >= moment(configData.implodeStartTime).unix() && moment().unix() <= moment(configData.implodeEndTime).unix()" @click="join"
class="join">{{ enrollId ? '修改报名' : '我要报名' }} class="join">{{ enrollId ? '修改报名' : '我要报名' }}
</van-button> </van-button>
<van-button v-if="moment().unix() < moment(configData.implodeStartTime).unix()" class="join">报名未开始
</van-button>
<van-button v-if="moment().unix() > moment(configData.implodeEndTime).unix()" class="join">报名结束 <van-button v-if="moment().unix() > moment(configData.implodeEndTime).unix()" class="join">报名结束
</van-button> </van-button>
</div> </div>
@@ -822,19 +779,22 @@ layout("/mobile/platform.html"){
} }
}, },
readPDFPicture(pdf) { readPDFPicture(pdf) {
const that = this
if(pdf != null) { if(pdf != null) {
pdf.on("complete", function () { pdf.on("complete", function () {
const imgDoc = document.querySelectorAll('img') const elements = document.querySelectorAll('[class*="canvasImg"]')
let array = []
let classArray = [] let classArray = []
imgDoc.forEach(o => { elements.forEach(element => {
if(o.getAttribute('class') !== 'top_icon') { classArray.push(element.getAttribute('src'))
classArray.push(o.getAttribute('class'))
array.push(o.getAttribute('src'))
}
}) })
document.addEventListener('click', (event) => that.handleClick(event, classArray, array)) elements.forEach((element,index) => {
element.addEventListener('click', function() {
vant.ImagePreview({
images: classArray,
startPosition: index,
closeable: true,
})
});
});
}) })
} }
}, },
@@ -852,7 +812,6 @@ layout("/mobile/platform.html"){
} }
await this.getData() await this.getData()
this.isLoad = true this.isLoad = true
try { try {
const parser = new DOMParser(); const parser = new DOMParser();
const doc = parser.parseFromString(this.lineData.content, 'text/html'); const doc = parser.parseFromString(this.lineData.content, 'text/html');
@@ -865,19 +824,11 @@ layout("/mobile/platform.html"){
}) })
}catch (e) { }catch (e) {
this.isPdf = true this.isPdf = true
//document.addEventListener('click', (event) => this.handleClick(event, [], []))
} }
this.$nextTick(() => { this.$nextTick(() => {
this.readPDFPicture(pdfh5) this.readPDFPicture(pdfh5)
}) })
}, },
mounted() {
//window.addEventListener('scroll', this.scrollToTop)
},
beforeDestroy() {
//window.removeEventListener('scroll', this.scrollToTop)
},
}) })
</script> </script>
@@ -301,6 +301,14 @@ layout("/mobile/platform.html"){
radius="8" radius="8"
:src="CREATE_PREVIEW_URL(o.fileId)" :src="CREATE_PREVIEW_URL(o.fileId)"
width="130"> width="130">
<template v-slot:error>
<van-image
width="130"
height="92"
fit="contain"
src="/assets/mobile/img/therapyRecuperation/hotel.jpg"
></van-image>
</template>
</van-image> </van-image>
<div v-if="pageForm.theRapyRecuperationType != '2' && pageForm.theRapyRecuperationType != '3'" class="content-right"> <div v-if="pageForm.theRapyRecuperationType != '2' && pageForm.theRapyRecuperationType != '3'" class="content-right">