1、首页的肆野轮播图跳转外链

2、详情页面的报名信息的静态页面
This commit is contained in:
wangzimeng 2025-08-12 18:19:02 +08:00
parent 5b6391c9ee
commit 234af32a1a
5 changed files with 1619 additions and 1426 deletions

View File

@ -30,7 +30,7 @@
</view>
</view>
<span class="line" ></span>
<span class="line"></span>
<span class="flex align-items" style="width: 100%;justify-content: space-between;">
<view class="tt1">活动时间</view>
<span style="font-size: 14px;">{{ formattedTime() }}</span>
@ -124,7 +124,8 @@
</view>
</view>
</view>
<view class="third flex flex-column" style="margin-bottom: 300rpx;justify-content: flex-start;" v-if="priceGem > 0">
<view class="third flex flex-column" style="margin-bottom: 300rpx;justify-content: flex-start;"
v-if="priceGem > 0">
<view @click="tipsShow = true" class="flex align-items"
style="padding: 30rpx;justify-content: space-between;">
<view class="third-top flex align-items" style="margin: 0px;">
@ -302,11 +303,11 @@
<!-- 声明 -->
<u-popup @touchmove.native.stop.prevent :closeOnClickOverlay="false" :closeable="false" :show="show" :round="10" mode="center"
@close="close" @open="open" :custom-style="popupStylezf">
<u-popup @touchmove.native.stop.prevent :closeOnClickOverlay="false" :closeable="false" :show="show"
:round="10" mode="center" @close="close" @open="open" :custom-style="popupStylezf">
<span style="font-size: 40rpx;font-weight: 800;height: 120rpx;">用户参与须知</span>
<scroll-view ref="scrollView" :scroll-top="scrollTop"
@scrolltolower="handleScroll" :scroll-y="true" style="height: 800rpx;margin-bottom: 24rpx;">
<scroll-view ref="scrollView" :scroll-top="scrollTop" @scrolltolower="handleScroll" :scroll-y="true"
style="height: 800rpx;margin-bottom: 24rpx;">
<view class="popup flex align-items flex-column">
<rich-text style="text-align: justify;" :nodes="Negotiate"></rich-text>
</view>
@ -314,8 +315,9 @@
<view class="popup-footer">
<!-- <span class="zhixiao" v-if="agreeShow == false">我同意 {{timeLog}}</span>
<span class="zhixiao shows_zhidao" v-if="agreeShow == true" @click="change">我同意</span> -->
<view style="gap: 20rpx;width: 100%;display: flex;justify-content: space-between;align-items: center;">
<view class="btn_4" @click="show = false" >取消</view>
<view
style="gap: 20rpx;width: 100%;display: flex;justify-content: space-between;align-items: center;">
<view class="btn_4" @click="show = false">取消</view>
<view class="btn_3" v-if="agreeShow == false">我同意{{timeLog}}</view>
<view class="btn_2" v-if="agreeShow == true" @click="change">我同意</view>
</view>
@ -344,12 +346,12 @@
</template>
<script>
import dayjs from 'dayjs';
import {
import dayjs from 'dayjs';
import {
dateWeek,
dateWeekend
} from '../../utils/dateFormat'
export default {
} from '../../utils/dateFormat'
export default {
computed: {
// formattedTitle() {
// if (this.detail.title.length > 9) {
@ -372,8 +374,8 @@ export default {
data() {
return {
timer:null,
timeLog:0,
timer: null,
timeLog: 0,
showYes: true,
order_no: {},
qunShow: false,
@ -614,7 +616,7 @@ export default {
this.timer = setInterval(() => {
this.timeLog--;
if (this.timeLog === 0) {
this.agreeShow=true;
this.agreeShow = true;
clearInterval(this.timer);
}
}, 1000);
@ -629,8 +631,8 @@ export default {
title: '请登录',
icon: 'none',
duration: 2000,
complete: function () {
setTimeout(function () {
complete: function() {
setTimeout(function() {
uni.switchTab({
url: '/pages/my/index',
});
@ -707,7 +709,7 @@ export default {
duration: 2000
})
}
}).catch(error => { });
}).catch(error => {});
},
// 0 1 2 3
@ -847,7 +849,7 @@ export default {
timeSelected(time) {
return this.selectedTime === time;
},
moveScroll() { },
moveScroll() {},
//
getMoneyGetm() {
let num = this.nummoney;
@ -1018,43 +1020,43 @@ export default {
});
},
},
}
}
</script>
<style lang="scss" scoped>
.detail_all {
.detail_all {
background-color: #f7f7f7;
}
}
.w-100 {
.w-100 {
width: 100%;
}
}
.flex {
.flex {
display: flex;
}
}
.flex-start {
.flex-start {
align-items: flex-start;
}
}
.justify-center {
.justify-center {
justify-content: center;
}
}
.align-items {
.align-items {
align-items: center;
}
}
.flex-column {
.flex-column {
flex-flow: column;
}
}
.justify-start {
.justify-start {
justify-content: start;
}
}
.white-space {
.white-space {
overflow: hidden;
/* 确保超出容器的文本被隐藏 */
white-space: nowrap;
@ -1062,46 +1064,46 @@ export default {
text-overflow: ellipsis;
/* 使用省略号表示被截断的文本 */
width: 100%;
}
}
.con-center {
.con-center {
background: white;
border-radius: 0 0 44rpx 44rpx;
position: relative;
}
}
.space-between {
.space-between {
justify-content: space-between;
}
}
.swiper {
.swiper {
width: 100%;
height: 580rpx;
}
}
.box {
.box {
position: relative;
}
}
.topimgs_rmb {
.topimgs_rmb {
position: absolute;
top: -168rpx;
right: 30rpx;
width: 201rpx;
height: 118rpx;
z-index: 0;
}
}
.topimgs {
.topimgs {
position: absolute;
top: -120rpx;
width: 100%;
z-index: 0;
}
}
.top_texts {
.top_texts {
position: absolute;
top: -156rpx;
right: 68rpx;
@ -1113,9 +1115,9 @@ export default {
font-size: 22rpx;
font-weight: 400;
}
}
}
.first-box {
.first-box {
width: 690rpx;
background: #FFFFFF;
// background: url('@/static/detail/conbg.png');
@ -1205,9 +1207,9 @@ export default {
border-radius: 8rpx;
}
}
}
}
.second-box {
.second-box {
width: 690rpx;
height: 64rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
@ -1255,9 +1257,9 @@ export default {
}
}
}
}
.third {
.third {
width: 100%;
background: #ffffff;
margin-top: 20rpx;
@ -1312,23 +1314,23 @@ export default {
}
}
.line {
.line {
width: 690rpx;
height: 1rpx;
background: #eeeeee;
margin: 30rpx 0;
}
}
.icon-size {
.icon-size {
width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
}
}
.footer {
.footer {
width: 100%;
height: 250rpx;
background: #ffffff;
@ -1365,10 +1367,10 @@ export default {
text-align: center;
}
}
}
}
.popupBox {
.popupBox {
width: 690rpx;
height: 716rpx;
@ -1498,9 +1500,9 @@ export default {
margin: 24rpx 32rpx 0 0;
}
}
}
.share {
.share {
position: fixed;
color: #FFFFFF;
right: 0;
@ -1510,13 +1512,14 @@ export default {
border-top-left-radius: 50px;
border-bottom-left-radius: 50px;
box-shadow: 0 0 20upx rgba(0, 0, 0, .09);
}
}
.popup-footer {
.popup-footer {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
// margin: 30rpx 0;
.zhixiao {
height: 80rpx;
@ -1542,9 +1545,9 @@ export default {
font-weight: 400;
font-size: 36rpx;
}
}
}
.cancel {
.cancel {
width: 100vw;
padding: 30rpx;
text-align: center;
@ -1552,49 +1555,49 @@ export default {
color: red;
font-weight: bold;
font-size: 30rpx;
}
}
.md-content {
.md-content {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 50rpx 0;
background-color: white;
}
}
.md-content-item {
.md-content-item {
margin: 0 70rpx;
position: relative;
}
}
.md-content-item image {
.md-content-item image {
width: 100rpx;
height: 100rpx;
}
}
.md-content-item view {
.md-content-item view {
margin-top: 15rpx;
font-size: 28rpx;
}
}
.sharebtn {
.sharebtn {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
}
}
.cu-modal {
.cu-modal {
position: fixed;
bottom: 166rpx;
left: 0;
z-index: 999999;
}
}
.gj {
.gj {
.title {
font-family: PingFang SC, PingFang SC;
font-weight: 800;
@ -1645,9 +1648,9 @@ export default {
}
}
}
}
}
::v-deep ::-webkit-scrollbar {
::v-deep ::-webkit-scrollbar {
/*滚动条整体样式*/
width: 4px !important;
height: 1px !important;
@ -1655,40 +1658,40 @@ export default {
background: #ccc !important;
-webkit-appearance: auto !important;
display: block;
}
}
::v-deep ::-webkit-scrollbar-thumb {
::v-deep ::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
border-radius: 10px !important;
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
background: #7b7979 !important;
}
}
::v-deep ::-webkit-scrollbar-track {
::v-deep ::-webkit-scrollbar-track {
/*滚动条里面轨道*/
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
// border-radius: 10px !important;
background: #FFFFFF !important;
}
}
.Poster {
.Poster {
position: relative;
top: 21rpx;
left: 30rpx;
width: 690rpx;
}
}
.posterClose {
.posterClose {
position: absolute;
right: 8rpx;
top: 8rpx;
}
}
.pos {
.pos {
position: relative;
}
}
.btnList {
.btnList {
width: 690rpx;
position: absolute;
bottom: 150rpx;
@ -1710,18 +1713,18 @@ export default {
align-items: center;
}
}
}
.no-scroll {
.no-scroll {
overflow: hidden;
height: 100vh;
}
}
::v-deep ._root {
::v-deep ._root {
padding: 0 10rpx;
}
}
.no-border-button {
.no-border-button {
background-color: transparent;
/* 去掉背景色 */
border: none;
@ -1753,14 +1756,14 @@ export default {
justify-content: center;
align-items: center;
}
}
}
.input {
.input {
text-align: right;
font-size: 28rpx;
}
}
.btn_1 {
.btn_1 {
z-index: 1000;
width: 95%;
height: 90rpx;
@ -1774,17 +1777,17 @@ export default {
text-align: center;
margin: 0 auto;
margin-top: 30rpx;
}
}
.yes {
.yes {
background: linear-gradient(180deg, #EFFFD6 0%, #FFFFFF 30%);
}
}
.no {
.no {
background: linear-gradient(180deg, #FFF1D6 0%, #FFFFFF 30%);
}
}
.refund-policy-table {
.refund-policy-table {
width: 100%;
.table-container {
@ -1849,8 +1852,9 @@ export default {
}
}
}
}
.btn_2 {
}
.btn_2 {
width: 50%;
height: 80rpx;
background: #323232;
@ -1864,6 +1868,7 @@ export default {
margin-top: 40rpx;
z-index: 100;
}
.btn_3 {
width: 50%;
height: 80rpx;
@ -1878,6 +1883,7 @@ export default {
margin-top: 40rpx;
z-index: 100;
}
.btn_4 {
width: 50%;
height: 80rpx;

View File

@ -139,19 +139,30 @@
<rich-text style="white-space: pre-line;" :nodes="detail.content"></rich-text>
</view>
<!-- 仅当内容高度超过容器高度时显示展开/收起按钮 -->
<view v-if="!richTextShow" @click="richTextShow = true" style="width: 100%; display: flex; align-items: center; justify-content: center;
position: sticky; bottom: 0; background: #fff; height: 50rpx; padding: 30rpx 0;">
展开
<u-icon name="arrow-down" color="#323232"></u-icon>
<view v-if="!richTextShow" @click="richTextShow = true"
style="padding: 30rpx 0;position: sticky; bottom: 0;background: #fff">
<view style=" display: flex; align-items: center; justify-content: center;margin: 0 auto;
background: #fff;border-radius: 200rpx;width: 288rpx;height: 80rpx;
border: 1rpx solid #ff4810; color: #ff4810;font-size: 32rpx;line-height: 45rpx;">
查看完整内容
<!-- <u-icon name="arrow-down" color="#323232"></u-icon> -->
</view>
<view v-if="richTextShow" @click="richTextShow = false" style="width: 100%; display: flex; align-items: center; justify-content: center;
position: sticky; bottom: -16px; background: #fff; height: 50rpx; padding: 30rpx 0;">
</view>
<view v-if="richTextShow" @click="richTextShow = false"
style="position: sticky; bottom: -16px; background: #fff; padding: 30rpx 0;">
<view style="width: 100%; display: flex; align-items: center; justify-content: center;margin: 0 auto;
background: #fff;border-radius: 200rpx;width: 200rpx;height: 80rpx;
border: 1rpx solid #ff4810; color: #ff4810;font-size: 32rpx;line-height: 45rpx;">
收起
<u-icon name="arrow-up" color="#323232"></u-icon>
<!-- <u-icon name="arrow-up" color="#323232"></u-icon> -->
</view>
</view>
</view>
<view class="" style="display: flex;flex-wrap: wrap;justify-content: flex-start;width: 690rpx;padding: 0 30rpx;gap: 10rpx;">
<view class=""
style="display: flex;flex-wrap: wrap;justify-content: flex-start;width: 690rpx;padding: 0 30rpx;gap: 10rpx;">
<view class="imgs" v-for="(item, index) in detail.images" :key="index">
<image mode="aspectFill" style="width: 220rpx;height: 220rpx;" :src="item">
</image>
@ -161,6 +172,52 @@
</view>
<!-- 报名信息 -->
<view class="fourth flex flex-column" style="justify-content: flex-start;margin-bottom: 180rpx;">
<view class="flex align-items" style="padding: 30rpx;justify-content: space-between;">
<view class="fourth-top flex align-items" style="margin: 0px;">
<span>报名信息
<image class="icons" src="/static/detail/xiangqing.png"></image>
</span>
</view>
<view style="display: flex;align-items: center;" @click="sortTypeShow == true">
<view style="font-size: 28rpx;margin-left: 10rpx;">默认排序</view>
<view>
<image src="https://naweigetetest2.hschool.com.cn/uniapp_image/signSort.png" mode=""
style="width: 24rpx;height: 24rpx;margin-left: 15rpx;"></image>
</view>
</view>
</view>
<view style="padding:0rpx 30rpx;">
<view style="padding-top: 0rpx;">
<view style="display: flex;align-items: center;justify-content: space-between;">
<view>
<view style="font-size: 28rpx;color: #323232;">名字 手机号</view>
<view style="color: #9C9C9C;font-size: 24rpx;margin-top: 10rpx;">身份证
</view>
</view>
</view>
</view>
<view style="height: 1px;background-color: #F0F0F0;width: 100%;margin-top: 40rpx;"></view>
</view>
<!-- <view v-for="(item, index) in displayedList" @click="chickTeam(item, index)"
style="padding:0rpx 30rpx;">
<view style="padding-top: 40rpx;">
<view style="display: flex;align-items: center;justify-content: space-between;">
<view>
<view style="font-size: 28rpx;color: #323232;">{{ item.name }} {{item.mobile}}</view>
<view style="color: #9C9C9C;font-size: 24rpx;margin-top: 10rpx;">身份证 {{ item.idnum }}
</view>
</view>
</view>
</view>
<view style="height: 1px;background-color: #F0F0F0;width: 100%;margin-top: 40rpx;"></view>
</view> -->
</view>
<view style="width: 100%;height: 100rpx;"></view>
<view class="footer flex align-items" style="justify-content: space-between;" v-if="detail.status == 4">
@ -223,6 +280,25 @@
</u-popup>
<!-- 报名人的列表展示类型 -->
<u-popup :show="sortTypeShow" mode="bottom" :round="10" :zIndex="99999" :custom-style="popupStyle" @close="sortTypeShow == false"
@open="sortTypeShow == true">
<view class="popupBox flex justify-start align-items flex-column">
<!-- <view class="pop-header flex align-items" style="justify-content: space-between;">
<image src="../../static/center/classTime.png" mode="" style="width: 252rpx; height: 48rpx;">
</image>
<span @click="cancel">取消选择</span>
</view> -->
<!-- <span class="line"></span> -->
<!-- <view class="times flex align-items justify-center" style="flex-wrap: wrap;">
<span class="selectTime flex justify-center align-items" v-for="(item, index) in timeList"
:key="index" :class="{ selected: timeSelected(item) }" @click="selectTime(item)">
{{ item.name }}</span>
</view> -->
</view>
</u-popup>
<!-- 购买弹窗 -->
<u-popup :show="buyShow" mode="center" :round="10" :zIndex="99999" :custom-style="popupStyle"
@close="buyClose" @open="buyOpen" :safeAreaInsetBottom="false" :closeable="true">
@ -392,6 +468,15 @@
data() {
return {
checkSortType: 0,
sortTypeShow: false,
signPeopleList: [],//
peopleParams: {
page: 1,
limit: 15,
order: '',
status: '2,3,4,5,6,7,9'
},
richTextShow: false,
showToggleButtons: false, // /
qunShow: false,
@ -762,6 +847,29 @@
}
}).catch(error => {});
},
//
getSignPeople() {
uni.$u.http.get('/api/school.newactivity.activity_join/people_list', {
params: {
page: this.peopleParams.page,
limit: this.peopleParams.limit,
order: this.peopleParams.order,
status: this.peopleParams.status,
}
}).then(res => {
if (res.code == 1) {
console.log('peopleList',res.code,res.data);
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
}).catch(error => {});
},
// 0 1 2 3
sign() {
@ -1059,7 +1167,6 @@
<style lang="scss" scoped>
.detail_all {
background-color: #f7f7f7;
height: 100vh;
}
.w-100 {
@ -1261,7 +1368,8 @@
background: #ffffff;
margin-top: 60rpx;
border-radius: 44rpx;
margin-bottom: 150rpx;
// margin-bottom: 150rpx;
padding-bottom: 30rpx;
.third-top {
font-family: PingFang SC, PingFang SC;
@ -1329,6 +1437,47 @@
}
.fourth {
width: 100%;
background: #ffffff;
margin-top: 20rpx;
border-radius: 44rpx;
.fourth-top {
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #323232;
line-height: 50rpx;
margin-top: 30rpx;
margin-left: 30rpx;
position: relative;
z-index: 10;
}
span {
position: relative;
.icons {
width: 37rpx;
height: 20rpx;
position: absolute;
left: 0;
bottom: 0;
z-index: -1;
}
}
.mgbot {
margin-bottom: 210rpx;
}
}
.yes {
background-color: #999999;
}
.line {
width: 690rpx;
height: 2rpx;

25
packageB/outWeb.vue Normal file
View File

@ -0,0 +1,25 @@
<template>
<web-view :src="url"></web-view>
</template>
<script>
export default {
components: {
//MySwiper,
},
data: {
url: ''
},
onLoad: function(options) {
this.setData({
url: decodeURIComponent(options.url)
})
},
methods: {
},
};
</script>
<style>
</style>

View File

@ -383,6 +383,12 @@
"navigationBarTitleText": "查看发票"
}
},
{
"path": "outWeb",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "invoice/addHead",
"style": {

View File

@ -465,6 +465,11 @@
},
openSwiper(item) {
console.log(item);
if(item.type == 'out') {
uni.navigateTo({
url: '/packageB/outWeb?url=' + item.url
})
}else {
if (item.url == 'outdoor_sport_apply') {
const token = uni.getStorageSync('token');
if (!token) {
@ -489,6 +494,8 @@
url: item.url
})
}
}
},
swiperChange(e) {
if (e.detail.source == 'autoplay' || e.detail.source == 'touch') {