修改ui细节完善小程序页面,修改bug
21
App.vue
@ -9,6 +9,15 @@
|
|||||||
},
|
},
|
||||||
onShow: function() {
|
onShow: function() {
|
||||||
console.log('App Show')
|
console.log('App Show')
|
||||||
|
wx.loadFontFace({
|
||||||
|
global: true,
|
||||||
|
family: 'YouSheBiaoTiHei',
|
||||||
|
source: 'url("https://naweigetetest2.hschool.com.cn/dyqc/YouSheBiaoTiHei.ttf")',
|
||||||
|
success: function(res) {
|
||||||
|
console.log('字体加载成功');
|
||||||
|
console.log(res);
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
onHide: function() {
|
onHide: function() {
|
||||||
console.log('App Hide')
|
console.log('App Hide')
|
||||||
@ -62,10 +71,12 @@
|
|||||||
.uni-input-input {
|
.uni-input-input {
|
||||||
font-size: 35rpx;
|
font-size: 35rpx;
|
||||||
}
|
}
|
||||||
@font-face {
|
// #ifdef MP-WEIXIN
|
||||||
font-family: 'YouSheBiaoTiHei';
|
// @font-face {
|
||||||
src: url('https://naweigetetest2.hschool.com.cn/dyqc/biaotihei.ttf') format('truetype');
|
// font-family: 'YouSheBiaoTiHei';
|
||||||
}
|
// src: url('https://naweigetetest2.hschool.com.cn/dyqc/YouSheBiaoTiHei.ttf') format('truetype');
|
||||||
|
// }
|
||||||
|
// #endif
|
||||||
.swiper_s{
|
.swiper_s{
|
||||||
.uni-swiper-dots{
|
.uni-swiper-dots{
|
||||||
bottom: 40rpx;
|
bottom: 40rpx;
|
||||||
@ -82,7 +93,7 @@
|
|||||||
//微信小程序
|
//微信小程序
|
||||||
// #ifdef MP-WEIXIN
|
// #ifdef MP-WEIXIN
|
||||||
.wx-swiper-dots{
|
.wx-swiper-dots{
|
||||||
bottom: 40rpx;
|
bottom: 50rpx;
|
||||||
}
|
}
|
||||||
.wx-swiper-dot{
|
.wx-swiper-dot{
|
||||||
background-color: #ffffff ;
|
background-color: #ffffff ;
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
TabBarList: [{
|
TabBarList:[],
|
||||||
|
TabBarList1: [{
|
||||||
index: 0,
|
index: 0,
|
||||||
name: '首页',
|
name: '首页',
|
||||||
img: '/static/index.png',
|
img: '/static/index.png',
|
||||||
@ -50,10 +51,31 @@
|
|||||||
acImg: '/static/my1.png',
|
acImg: '/static/my1.png',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
],
|
||||||
|
TabBarList2: [{
|
||||||
|
index: 0,
|
||||||
|
name: '首页',
|
||||||
|
img: '/static/index.png',
|
||||||
|
acImg: '/static/index1.png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 1,
|
||||||
|
name: '消息',
|
||||||
|
img: '/static/activity.png',
|
||||||
|
acImg: '/static/activity1.png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 3,
|
||||||
|
name: '我的',
|
||||||
|
img: '/static/my.png',
|
||||||
|
acImg: '/static/my1.png',
|
||||||
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
codeheight: 0,
|
codeheight: 0,
|
||||||
isOverall: 0,
|
isOverall: 0,
|
||||||
phoneModel: '',
|
phoneModel: '',
|
||||||
|
initFb:''
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -66,6 +88,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.getinit();
|
||||||
try {
|
try {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
let that = this;
|
let that = this;
|
||||||
@ -100,14 +123,29 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getinit() {
|
||||||
|
uni.$u.http.get('/api/index/init', {}).then(res => {
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.initFb = res.data.base_info.miniapp_activity_swtich;
|
||||||
|
if (res.data.base_info.miniapp_activity_swtich == 1) {
|
||||||
|
this.TabBarList = this.TabBarList1;
|
||||||
|
} else {
|
||||||
|
this.TabBarList = this.TabBarList2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* @param {Object} item
|
* @param {Object} item
|
||||||
* @param {Number} index
|
* @param {Number} index
|
||||||
*/
|
*/
|
||||||
onTabBar(item, index) {
|
onTabBar(item, index) {
|
||||||
this.$emit('tabBarShow', index);
|
this.$emit('tabBarShow', index);
|
||||||
console.log('index', index)
|
console.log('index', index);
|
||||||
|
if(this.initFb == 1){
|
||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
uni.switchTab({
|
uni.switchTab({
|
||||||
@ -129,12 +167,37 @@
|
|||||||
url: '/pages/my/index'
|
url: '/pages/my/index'
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
case 3:
|
default:
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
uni.switchTab({
|
uni.switchTab({
|
||||||
url: '/pages/activity/index'
|
url: '/pages/activity/index'
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/my/index'
|
||||||
|
})
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
125
components/qrcodeSwiper.vue
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<template>
|
||||||
|
<view class="carousel-container">
|
||||||
|
<!-- 轮播主体 -->
|
||||||
|
<swiper
|
||||||
|
class="swiper-box"
|
||||||
|
:current="currentIndex"
|
||||||
|
@change="onSwiperChange"
|
||||||
|
circular
|
||||||
|
>
|
||||||
|
<swiper-item v-for="(item, index) in images" :key="index" class="swiper-item">
|
||||||
|
<image :src="item" class="swiper-image" mode="aspectFill" />
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
|
||||||
|
<!-- 控制按钮 -->
|
||||||
|
<view class="nav-buttons">
|
||||||
|
<view class="btn prev" @click="switchSlide(-1)">
|
||||||
|
<image style="width: 50rpx;height: 50rpx;" src="/static/detail/left.png"></image>
|
||||||
|
</view>
|
||||||
|
<view class="btn next" @click="switchSlide(1)">
|
||||||
|
<image style="width: 50rpx;height: 50rpx;" src="/static/detail/right.png"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 自定义指示器 -->
|
||||||
|
<!-- <view class="dots">
|
||||||
|
<text
|
||||||
|
v-for="(dot, idx) in images.length"
|
||||||
|
:key="idx"
|
||||||
|
:class="['dot', { active: currentIndex === idx }]"
|
||||||
|
/>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
images: { type: Array, default: () => [] } // 接收外部图片数组
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
currentIndex: 0
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 滑动切换回调
|
||||||
|
onSwiperChange(e) {
|
||||||
|
this.currentIndex = e.detail.current;
|
||||||
|
},
|
||||||
|
// 按钮切换逻辑
|
||||||
|
switchSlide(step) {
|
||||||
|
const total = this.images.length;
|
||||||
|
let newIndex = this.currentIndex + step;
|
||||||
|
|
||||||
|
if (newIndex < 0) newIndex = total - 1; // 循环向前
|
||||||
|
else if (newIndex >= total) newIndex = 0; // 循环向后
|
||||||
|
|
||||||
|
this.currentIndex = newIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.carousel-container {
|
||||||
|
position: relative;
|
||||||
|
height: 400rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-box {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.swiper-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.swiper-image {
|
||||||
|
width: 200rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-buttons {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
// border-radius: 50%;
|
||||||
|
// background: rgba(0,0,0,0.3);
|
||||||
|
color: white;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dots {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 20rpx;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.dot {
|
||||||
|
width: 12rpx;
|
||||||
|
height: 12rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: rgba(255,255,255,0.5);
|
||||||
|
margin: 0 8rpx;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background: #007AFF;
|
||||||
|
transform: scale(1.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,471 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="center-box">
|
|
||||||
<view class="box flex flex-column flex-start">
|
|
||||||
<view class="listBox flex flex-column flex-start">
|
|
||||||
<view class="list flex flex-column flex-start" v-for="(item,index) in list" :key="index"
|
|
||||||
@click="open(item.id)">
|
|
||||||
<image :src="item.detail.headimage" mode=""
|
|
||||||
style="width: 690rpx;height: 482rpx;border-radius: 10rpx;"></image>
|
|
||||||
<span class="title white-space">{{item.detail.title}}</span>
|
|
||||||
<view class="icon flex align-items">
|
|
||||||
<span class="white-space"
|
|
||||||
style="font-size: 24rpx;">{{'活动时间: ' + item.detail.start_time_text + '-' + item.detail.end_time_text}}</span>
|
|
||||||
</view>
|
|
||||||
<view class="icon flex align-items" style="margin-bottom: 8rpx;margin-top: 8rpx;width: 400rpx;">
|
|
||||||
<span class="white-space" style="font-size: 24rpx;color: #FF2323;">
|
|
||||||
<span style="color:#7A7A7A;" v-if="item.detail.feel == 1">活动费用:{{'' + '公益'}}</span>
|
|
||||||
<span style="color:#7A7A7A;" v-if="item.detail.feel == 2">活动费用:{{'¥'+ item.price}}</span>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
<view class="icon flex align-items" style="margin-top: 0rpx;margin-bottom: 32rpx;">
|
|
||||||
<span class="status" v-if="item.status == -3" style="color: #FF0000;">已取消</span>
|
|
||||||
<span class="status text-blue" v-if="item.status == 0">待支付</span>
|
|
||||||
<span class="status text-blue" v-if="item.status == 2">待审核</span>
|
|
||||||
<span class="status text-blue" v-if="item.status == 3">已预约</span>
|
|
||||||
<span class="status" v-if="item.status == 4" style="color: #FF0000;">售后中</span>
|
|
||||||
<span class="status" v-if="item.status == 5" style="color: #FF0000;">退款中</span>
|
|
||||||
<span class="status" v-if="item.status == 6" style="color: #FF0000;">已退款</span>
|
|
||||||
<span class="status" v-if="item.status == 9" style="color: #34DC12;">已完成</span>
|
|
||||||
</view>
|
|
||||||
<span class="Sign bg-blue flex justify-center align-items" v-if="item.status == 3"
|
|
||||||
@click.stop="QR(item.id)">二 维 码</span>
|
|
||||||
<span class="hui bg-hui flex justify-center align-items" v-if="item.status != 3">二 维 码</span>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<u-popup :show="show" mode="center" :zIndex="99999" :custom-style="popupStyle" closeable="true" @close="qrClose"
|
|
||||||
@open="qrOpen">
|
|
||||||
<view class="popup flex flex-column align-items">
|
|
||||||
<view class="pop-center flex">
|
|
||||||
<!-- <view class="left">
|
|
||||||
<image :src="qrcode.detail.headimage" mode="" style="width: 280rpx;height: 200rpx;"></image>
|
|
||||||
</view> -->
|
|
||||||
<view class="right flex flex-column">
|
|
||||||
<span class="title white-space">{{qrcode.detail.title}}</span>
|
|
||||||
<span class="line-short"></span>
|
|
||||||
<span class="hui" style="margin-bottom: 20rpx;">活动时间:{{' ' + qrcode.detail.start_time_text}} -
|
|
||||||
{{qrcode.detail.end_time_text}}</span>
|
|
||||||
<span class="hui">报名时间:{{' ' + qrcode.detail.sign_start_time_text}} -
|
|
||||||
{{qrcode.detail.sign_end_time_text}}</span>
|
|
||||||
<span class="hui" style="margin: 20rpx 0;">活动地址:{{' ' + qrcode.detail.address_detail}}</span>
|
|
||||||
<view class="flex align-items">
|
|
||||||
<span class="hui">{{'审核状态:' + ' '}}</span>
|
|
||||||
<span class="status" v-if="qrcode.status == -3" style="color: #FF0000;">已取消</span>
|
|
||||||
<span class="status text-blue" v-if="qrcode.status == 0">待支付</span>
|
|
||||||
<span class="status text-blue" v-if="qrcode.status == 2">待审核</span>
|
|
||||||
<span class="status text-blue" v-if="qrcode.status == 3">已预约</span>
|
|
||||||
<span class="status" v-if="qrcode.status == 4" style="color: #FF0000;">售后中</span>
|
|
||||||
<span class="status" v-if="qrcode.status == 5" style="color: #FF0000;">退款中</span>
|
|
||||||
<span class="status" v-if="qrcode.status == 6" style="color: #FF0000;">已退款</span>
|
|
||||||
<span class="status" v-if="qrcode.status == 9" style="color: #34DC12;">已完成</span>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<image :src="qrcode.codeimage" mode="" style="width: 376rpx;height: 376rpx;"></image>
|
|
||||||
<span style="margin: 24rpx 0 64rpx 0;">核销二维码</span>
|
|
||||||
</view>
|
|
||||||
</u-popup>
|
|
||||||
<u-loadmore :status="loadStatus" />
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
page: 1,
|
|
||||||
limit: 10,
|
|
||||||
keywords: '',
|
|
||||||
list: [],
|
|
||||||
count: 0,
|
|
||||||
loadStatus: 'loading',
|
|
||||||
popupStyle: {
|
|
||||||
width: '690rpx',
|
|
||||||
margin: '0 auto', // 水平居中
|
|
||||||
display: 'flex',
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',
|
|
||||||
padding: '0',
|
|
||||||
borderRadius: '20rpx'
|
|
||||||
},
|
|
||||||
show: false,
|
|
||||||
qrcode: {}
|
|
||||||
|
|
||||||
};
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.getList()
|
|
||||||
},
|
|
||||||
onReachBottom() {
|
|
||||||
if (this.list.length < this.count) {
|
|
||||||
this.page++;
|
|
||||||
this.getList();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 关闭弹窗
|
|
||||||
qrClose() {
|
|
||||||
this.show = false
|
|
||||||
// this.qrcode = ''
|
|
||||||
},
|
|
||||||
qrOpen() {
|
|
||||||
this.show = true
|
|
||||||
},
|
|
||||||
// 核销码
|
|
||||||
QR(id) {
|
|
||||||
uni.$u.http.get('/api/school.activity.order/detail', {
|
|
||||||
params: {
|
|
||||||
id: id
|
|
||||||
},
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.qrcode = res.data.detail
|
|
||||||
this.show = true
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(error => {});
|
|
||||||
|
|
||||||
},
|
|
||||||
getList() {
|
|
||||||
uni.$u.http.get('/api/school.activity.order/order_list', {
|
|
||||||
params: {
|
|
||||||
keywords: this.keywords,
|
|
||||||
page: this.page,
|
|
||||||
limit: this.limit,
|
|
||||||
status: '-3,0,2,3,4,5,6,9'
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.count = res.data.count
|
|
||||||
this.list = [...this.list, ...res.data.list];
|
|
||||||
if (this.list.length >= res.data.count) {
|
|
||||||
this.loadStatus = 'nomore';
|
|
||||||
} else {
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请求失败,请稍后再试',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
open(id) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/packageA/activity/exerciseDetaill?id=" + id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.center-box {
|
|
||||||
width: 750rpx;
|
|
||||||
background: #F1F2F8;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box {
|
|
||||||
width: 690rpx;
|
|
||||||
padding: 0 30rpx 0rpx 30rpx;
|
|
||||||
border-radius: 0px 0px 0px 0px;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
margin-top: 27rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
|
|
||||||
.dashed {
|
|
||||||
image {
|
|
||||||
width: 52rpx;
|
|
||||||
height: 52rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-search {
|
|
||||||
width: 2rpx;
|
|
||||||
height: 42rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
// border: 4rpx solid #EAEAEA;
|
|
||||||
padding-left: 12rpx;
|
|
||||||
height: 100%;
|
|
||||||
width: 78%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .input-placeholder {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #C0C0C0;
|
|
||||||
line-height: 32rpx;
|
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
|
||||||
text-transform: none;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchBtn {
|
|
||||||
width: 128rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-100 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-center {
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-items {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-column {
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-start {
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.listBox {
|
|
||||||
width: 690rpx;
|
|
||||||
margin-top: 10rpx;
|
|
||||||
|
|
||||||
.list {
|
|
||||||
margin-top: 32rpx;
|
|
||||||
position: relative;
|
|
||||||
background: #FFFFFF;
|
|
||||||
border-radius: 10rpx;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
width: 642rpx;
|
|
||||||
margin-top: 32rpx;
|
|
||||||
margin-left: 24rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
width: 580rpx;
|
|
||||||
margin-top: 24rpx;
|
|
||||||
margin-left: 24rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Sign {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 32rpx;
|
|
||||||
right: 54rpx;
|
|
||||||
width: 152rpx;
|
|
||||||
height: 56rpx;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hui {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 32rpx;
|
|
||||||
right: 54rpx;
|
|
||||||
width: 152rpx;
|
|
||||||
height: 56rpx;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-size {
|
|
||||||
width: 32rpx;
|
|
||||||
height: 32rpx;
|
|
||||||
margin-right: 8rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup {
|
|
||||||
.header {
|
|
||||||
margin-left: 24rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 42rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
margin-top: 34rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
margin: 11rpx 0 31rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pop-center {
|
|
||||||
margin-top: 50rpx;
|
|
||||||
align-items: center;
|
|
||||||
width: 650rpx;
|
|
||||||
|
|
||||||
.left {
|
|
||||||
image {
|
|
||||||
border-radius: 12rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
|
||||||
// margin-left: 30rpx;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
width: 650rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 42rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-short {
|
|
||||||
width: 642rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
margin: 25rpx 0 25rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hui {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.popList {
|
|
||||||
justify-content: space-between;
|
|
||||||
width: 600rpx;
|
|
||||||
margin-top: 32rpx;
|
|
||||||
|
|
||||||
.hei {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.pop-btn {
|
|
||||||
width: 690rpx;
|
|
||||||
margin-top: 62rpx;
|
|
||||||
justify-content: space-around;
|
|
||||||
|
|
||||||
.Cancel {
|
|
||||||
width: 306rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Confirm {
|
|
||||||
width: 306rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,509 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="box flex justify-center align-items flex-column">
|
|
||||||
<view class="search flex align-items">
|
|
||||||
<span class="dashed">
|
|
||||||
<image src="../../static/center/search.png" mode=""></image>
|
|
||||||
</span>
|
|
||||||
<span class="line-search"></span>
|
|
||||||
<input type="text" placeholder="搜索教师课程" v-model="keywords" class="input" placeholder-class="plasty" />
|
|
||||||
<span class="searchBtn" @click.stop="search()">搜索</span>
|
|
||||||
</view>
|
|
||||||
<view class="con-center flex flex-column justify-center align-items">
|
|
||||||
<view class="centerBox flex justify-start align-items flex-column" v-if="list.length != 0">
|
|
||||||
<view class="flex w-100 center flex-column" style="align-items: center;" v-for="(item,index) in list"
|
|
||||||
:key="index" @click.stop="openUrl('/pages/center/detail?id='+item.id)" >
|
|
||||||
<view class="flex" style="width: 690rpx;">
|
|
||||||
<image :src="item.headimage" mode="" style="width: 280rpx; height: 200rpx;border-radius: 12rpx;"></image>
|
|
||||||
<view class="flex flex-column rightBox">
|
|
||||||
<span class="name">{{item.title}}</span>
|
|
||||||
<!-- <span class="line-row"></span> -->
|
|
||||||
<span class="minge">{{'开始时间 ' + item.start_time_text}}</span>
|
|
||||||
<span class="minge">{{'结束时间 ' + item.end_time_text}}</span>
|
|
||||||
<span class="money" v-if="item.feel == 0">
|
|
||||||
<span>课程价格:</span>
|
|
||||||
{{'¥' + item.price}}</span>
|
|
||||||
<span class="charge" v-if="item.feel == 1" >
|
|
||||||
免费
|
|
||||||
</span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <span class="error" v-if="item.auth_status == 2">审核失败:{{item.reason}}</span> -->
|
|
||||||
<span class="box-line"></span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="" v-else>
|
|
||||||
<u-empty
|
|
||||||
mode="list"
|
|
||||||
icon="http://cdn.uviewui.com/uview/empty/list.png"
|
|
||||||
>
|
|
||||||
</u-empty>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<u-loadmore :status="loadStatus" />
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
size: 13,
|
|
||||||
page: 1,
|
|
||||||
limit: 10,
|
|
||||||
loadStatus: 'loading',
|
|
||||||
list: [],
|
|
||||||
last_page:0,
|
|
||||||
keywords:''
|
|
||||||
};
|
|
||||||
},
|
|
||||||
// onLoad() {
|
|
||||||
// this.getList();
|
|
||||||
// },
|
|
||||||
onShow() {
|
|
||||||
this.page = 1
|
|
||||||
this.list = []
|
|
||||||
this.getList();
|
|
||||||
},
|
|
||||||
onReachBottom() {
|
|
||||||
if (this.page < this.last_page) {
|
|
||||||
this.page++;
|
|
||||||
this.getList();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
openUrl(url) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: url
|
|
||||||
})
|
|
||||||
},
|
|
||||||
search(){
|
|
||||||
this.resetLists()
|
|
||||||
this.getList()
|
|
||||||
},
|
|
||||||
resetLists(){
|
|
||||||
this.page = 1;
|
|
||||||
this.list = [];
|
|
||||||
this.loadStatus = 'loading'
|
|
||||||
},
|
|
||||||
// 获取课程列表
|
|
||||||
getList() {
|
|
||||||
// if (this.loadStatus === 'nomore') return;
|
|
||||||
uni.$u.http.get('/api/school/classes/classes_list', {
|
|
||||||
params: {
|
|
||||||
page: this.page,
|
|
||||||
limit: this.limit,
|
|
||||||
order: 'normal',
|
|
||||||
keywords:this.keywords,
|
|
||||||
teacher_id:this.id,
|
|
||||||
is_expire: 2
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.last_page = res.data.list.last_page
|
|
||||||
this.list = [...this.list, ...res.data.list.data];
|
|
||||||
if (this.list.length >= res.data.list.total) {
|
|
||||||
this.loadStatus = 'nomore';
|
|
||||||
} else {
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
console.error('请求失败', error);
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.box {
|
|
||||||
background: linear-gradient(to bottom, #F1F2F8 0%, #FFFFFF 5%, #FFFFFF 100%);
|
|
||||||
|
|
||||||
.con-center {
|
|
||||||
width: 690rpx;
|
|
||||||
margin-top: 25rpx;
|
|
||||||
|
|
||||||
.centerBack {
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
top: 25rpx;
|
|
||||||
left: 0;
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
height: 50rpx;
|
|
||||||
margin-top: 37rpx;
|
|
||||||
|
|
||||||
.s-header {
|
|
||||||
width: 104rpx;
|
|
||||||
height: 50rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #9E9E9E;
|
|
||||||
line-height: 26rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.s-header.selected {
|
|
||||||
width: 104rpx;
|
|
||||||
height: 50rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
line-height: 26rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-100 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-start {
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-center {
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-items {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-column {
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-start {
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line {
|
|
||||||
margin-top: 12rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.centerBox {
|
|
||||||
width: 690rpx;
|
|
||||||
|
|
||||||
.error {
|
|
||||||
width: 100%;
|
|
||||||
word-break: break-all;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-line {
|
|
||||||
width: 400rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
margin-top: 52rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.center {
|
|
||||||
margin: 32rpx 0 32rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rightBox {
|
|
||||||
margin-left: 24rpx;
|
|
||||||
width: 378rpx;
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 382rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
box-shadow: 1rpx 1rpx 0rpx 0rpx rgba(102, 102, 102, 0.25);
|
|
||||||
margin: 14rpx 0 6rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.name {
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 36rpx;
|
|
||||||
color: #343434;
|
|
||||||
margin-bottom: 24rpx;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 1;
|
|
||||||
/* 设置行数 */
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
word-break: break-all;
|
|
||||||
/* 防止单词被截断 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.minge {
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
margin-bottom: 14rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pass {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #34DC12;
|
|
||||||
}
|
|
||||||
|
|
||||||
.full {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.money {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.Cancel {
|
|
||||||
width: 138rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
line-height: 32rpx;
|
|
||||||
letter-spacing: 4px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.make {
|
|
||||||
width: 138rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
line-height: 32rpx;
|
|
||||||
letter-spacing: 4px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: flex-end;
|
|
||||||
margin-left: 16rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QR {
|
|
||||||
width: 138rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
background: #4974FF;
|
|
||||||
box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #EAEAEA;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: flex-end;
|
|
||||||
margin-top: 50rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.charge {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
line-height: 32rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
margin-top: 24rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
|
|
||||||
.dashed {
|
|
||||||
image {
|
|
||||||
width: 52rpx;
|
|
||||||
height: 52rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-search {
|
|
||||||
width: 2rpx;
|
|
||||||
height: 42rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
// border: 4rpx solid #EAEAEA;
|
|
||||||
padding-left: 12rpx;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .input-placeholder {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #C0C0C0;
|
|
||||||
line-height: 32rpx;
|
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
|
||||||
text-transform: none;
|
|
||||||
|
|
||||||
}
|
|
||||||
.searchBtn{
|
|
||||||
width: 128rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup {
|
|
||||||
.header {
|
|
||||||
margin-left: 24rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 42rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
margin-top: 34rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
margin: 11rpx 0 31rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pop-center {
|
|
||||||
.left {}
|
|
||||||
|
|
||||||
.right {
|
|
||||||
margin-left: 30rpx;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
width: 340rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-short {
|
|
||||||
width: 400rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popList {
|
|
||||||
justify-content: space-between;
|
|
||||||
width: 600rpx;
|
|
||||||
margin-top: 32rpx;
|
|
||||||
|
|
||||||
.hei {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.pop-btn {
|
|
||||||
width: 690rpx;
|
|
||||||
margin-top: 62rpx;
|
|
||||||
justify-content: space-around;
|
|
||||||
|
|
||||||
.Cancel {
|
|
||||||
width: 306rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Confirm {
|
|
||||||
width: 306rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hui {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,61 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="box">
|
|
||||||
<!-- <image src="https://testy.hschool.com.cn//uploads/20241128/50fba75792a2d6478eeedcd0e2373772.png" mode="widthFix"
|
|
||||||
class="backImg"></image> -->
|
|
||||||
<rich-text :nodes="Negotiate"></rich-text>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
Negotiate:''
|
|
||||||
};
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.getAgreement()
|
|
||||||
},
|
|
||||||
methods:{
|
|
||||||
// 获取入驻协议文章
|
|
||||||
getAgreement() {
|
|
||||||
uni.$u.http.get('/api/index/agreement', {
|
|
||||||
params: {}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
|
|
||||||
this.Negotiate = (res.data.about_us).replace(/\<img/gi,
|
|
||||||
'<img style="max-width:100%;height:auto" ');
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请求失败,请稍后再试',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.box {
|
|
||||||
width: 750rpx;
|
|
||||||
overflow-y: auto;
|
|
||||||
/* 允许垂直滚动 */
|
|
||||||
|
|
||||||
.backImg {
|
|
||||||
width: 100%;
|
|
||||||
/* 图片宽度占满容器 */
|
|
||||||
height: auto;
|
|
||||||
/* 图片高度自适应 */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,421 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="box flex flex-column flex-start align-items">
|
|
||||||
<view class="con-box flex flex-column flex-start align-items">
|
|
||||||
<view class="top flex ">
|
|
||||||
<image :src="detail.detail.headimage" mode=""
|
|
||||||
style="width: 280rpx;height: 200rpx;border-radius: 12rpx;"></image>
|
|
||||||
<view class="rightBox flex flex-column flex-start">
|
|
||||||
<span class="name">{{detail.detail.title}}</span>
|
|
||||||
<span class="minge">活动规格</span>
|
|
||||||
<span class="minge" style="font-weight: 800;">{{detail.orderitem.name}}</span>
|
|
||||||
<view class="flex align-items" style="width: 340rpx;">
|
|
||||||
<span class="minge">{{detail.orderitem.limit_num}}人</span>
|
|
||||||
<span class="minge">{{detail.orderitem.age}}岁</span>
|
|
||||||
<span class="minge" v-if="detail.orderitem.sex == 3">男女不限</span>
|
|
||||||
<span class="minge" v-else>{{detail.orderitem.sex == 1 ? "男" : "女"}}</span>
|
|
||||||
</view>
|
|
||||||
<!-- <span class="minge" v-if="detail.feel == 0">课程价格:
|
|
||||||
<span style="color: #FF2323;font-weight: 800;">{{'¥' + detail.price}}</span>
|
|
||||||
</span>
|
|
||||||
<span class="minge" v-if="detail.feel == 1">
|
|
||||||
<span style="color: #FF2323;font-weight: 800;">免费</span>
|
|
||||||
</span> -->
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<span class="line"></span>
|
|
||||||
<view class="con-center flex flex-start flex-column align-items ">
|
|
||||||
<view class="top flex flex-start" style="padding: 0;">
|
|
||||||
<image :src="detail.user.avatar" mode=""
|
|
||||||
style="width: 120rpx;height: 120rpx;border-radius: 100%;margin-right: 18rpx;">
|
|
||||||
</image>
|
|
||||||
<view class="flex flex-column " style="width: 550rpx;">
|
|
||||||
<span class="name">{{detail.user.nickname}}</span>
|
|
||||||
<span class="minge"> {{'姓 名:' + detail.user.realname}}</span>
|
|
||||||
<span class="minge flex align-items white-space" @click="callPhone(detail.user.mobile)">
|
|
||||||
<span class="white-space">{{'联系电话:' + detail.user.mobile}}</span>
|
|
||||||
<image src="../../static/tel.png" mode="" style="width: 36rpx;height: 36rpx;"></image>
|
|
||||||
</span>
|
|
||||||
<span class="minge">{{'订 单 号:' + detail.order_no}}</span>
|
|
||||||
<span class="minge">{{'购买时间:' + detail.user.realname || detail.user.nickname}}</span>
|
|
||||||
<span class="minge">{{'姓 名:' + detail.paytime_text}}</span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<span class="line-row"></span>
|
|
||||||
<view class="center flex flex-column flex-start">
|
|
||||||
<span class="detail">活动介绍</span>
|
|
||||||
<span class="minge">{{'活动时间:' + detail.detail.start_time_text}} -
|
|
||||||
{{detail.detail.end_time_text}}</span>
|
|
||||||
<span class="minge">{{'报名时间:' + detail.detail.sign_start_time_text}} -
|
|
||||||
{{detail.detail.sign_end_time_text}}</span>
|
|
||||||
<span class="minge">
|
|
||||||
报名费用:
|
|
||||||
<span
|
|
||||||
class="price">{{ parseFloat(detail.orderitem.price) == 0 ? '公益' : detail.orderitem.price }}</span>
|
|
||||||
</span>
|
|
||||||
<span class="minge">{{'活动人数:' + detail.orderitem.limit_num}}</span>
|
|
||||||
<span class="minge flex align-items "
|
|
||||||
@click.stop="toMap(detail.detail.latitude,detail.detail.longitude,detail.detail.address_detail)">
|
|
||||||
<span class="white-space">{{'活动地址:' + detail.detail.address_detail}}</span>
|
|
||||||
<image src="../../static/center/address.png" mode=""
|
|
||||||
style="width: 36rpx;height: 36rpx; margin-left: 12rpx;"></image>
|
|
||||||
</span>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="footer flex justify-center center align-items">
|
|
||||||
<span class="flex justify-center center align-items" @click.stop="submit">确认核销</span>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
detail: {},
|
|
||||||
order_id: '',
|
|
||||||
type: '',
|
|
||||||
vcode: '',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
filters: {
|
|
||||||
formatDateTime(timestamp) {
|
|
||||||
if (!timestamp) return '';
|
|
||||||
const date = new Date(timestamp * 1000);
|
|
||||||
const year = date.getFullYear();
|
|
||||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
||||||
const day = String(date.getDate()).padStart(2, '0');
|
|
||||||
const hours = String(date.getHours()).padStart(2, '0');
|
|
||||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
||||||
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
||||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onLoad(option) {
|
|
||||||
console.log('option', option);
|
|
||||||
if (option.res) {
|
|
||||||
// 解码参数
|
|
||||||
const decodedRes = decodeURIComponent(option.res);
|
|
||||||
// 解析查询字符串为对象
|
|
||||||
const params = this.parseQueryString(decodedRes);
|
|
||||||
// 将解析后的参数赋值给组件的 data 属性
|
|
||||||
this.order_id = params.order_id;
|
|
||||||
this.type = params.type;
|
|
||||||
this.vcode = params.vcode;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onShow() {
|
|
||||||
this.page = 1
|
|
||||||
this.list = []
|
|
||||||
this.getDetail(this.order_id)
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
submit() {
|
|
||||||
uni.$u.http.post('/api/school.worker.activity.order/verification', {
|
|
||||||
order_no: this.detail.order_no
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
uni.showToast({
|
|
||||||
title: '核销完成',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000,
|
|
||||||
complete: function() {
|
|
||||||
setTimeout(function() {
|
|
||||||
uni.navigateBack(1)
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch(error => {});
|
|
||||||
},
|
|
||||||
|
|
||||||
parseQueryString(queryString) {
|
|
||||||
const params = {};
|
|
||||||
const pairs = queryString.split('&');
|
|
||||||
for (const pair of pairs) {
|
|
||||||
const [key, value] = pair.split('=');
|
|
||||||
params[key] = value;
|
|
||||||
}
|
|
||||||
return params;
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
getDetail(id) {
|
|
||||||
uni.$u.http.get('/api/school.worker.activity.order/detail', {
|
|
||||||
params: {
|
|
||||||
id: id,
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.detail = res.data.detail
|
|
||||||
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000,
|
|
||||||
complete: function() {
|
|
||||||
setTimeout(function() {
|
|
||||||
uni.navigateBack(1)
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch(error => {});
|
|
||||||
},
|
|
||||||
// 导航
|
|
||||||
toMap(latitude, longitude, name) {
|
|
||||||
uni.openLocation({
|
|
||||||
latitude: parseFloat(latitude),
|
|
||||||
longitude: parseFloat(longitude),
|
|
||||||
name: name,
|
|
||||||
success: function() {
|
|
||||||
console.log('success');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
callPhone(phone) {
|
|
||||||
uni.makePhoneCall({
|
|
||||||
phoneNumber: phone
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.w-100 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-start {
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-center {
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-items {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-column {
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-start {
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line {
|
|
||||||
margin-top: 12rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.space-between {
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hui {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.minge {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box {
|
|
||||||
width: 750rpx;
|
|
||||||
background: #F1F2F8;
|
|
||||||
height: 100vh;
|
|
||||||
|
|
||||||
.con-box {
|
|
||||||
background: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.con-center {
|
|
||||||
width: 690rpx;
|
|
||||||
margin-bottom: 42rpx;
|
|
||||||
|
|
||||||
.name {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #181818;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 642rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
margin: 33rpx 0 23rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.center {
|
|
||||||
width: 642rpx;
|
|
||||||
|
|
||||||
.detail {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
margin-bottom: 6rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.price {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #FF0000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.minge {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
margin-top: 18rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.top {
|
|
||||||
width: 690rpx;
|
|
||||||
padding: 32rpx 30rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
|
|
||||||
.rightBox {
|
|
||||||
margin-left: 32rpx;
|
|
||||||
width: 378rpx;
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 382rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
box-shadow: 1rpx 1rpx 0rpx 0rpx rgba(102, 102, 102, 0.25);
|
|
||||||
margin: 14rpx 0 6rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.price {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
}
|
|
||||||
|
|
||||||
.name {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #343434;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
/* 设置行数 */
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
word-break: break-all;
|
|
||||||
/* 防止单词被截断 */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.money {
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.centerBack {
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
top: 25rpx;
|
|
||||||
left: 0;
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.line {
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
margin: 37rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
width: 750rpx;
|
|
||||||
height: 122rpx;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
background: #FFFFFF;
|
|
||||||
box-shadow: 0rpx -6rpx 12rpx 0rpx rgba(111, 190, 255, 0.1);
|
|
||||||
|
|
||||||
span {
|
|
||||||
width: 642rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -11,7 +11,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="min-height: 100vh;">
|
<view style="min-height: 100vh;margin-top: 80rpx;">
|
||||||
|
|
||||||
<view class="flex hdkuai flex-column" v-for="(item,index) in list" :key="index">
|
<view class="flex hdkuai flex-column" v-for="(item,index) in list" :key="index">
|
||||||
<view style="margin:0 30rpx;">
|
<view style="margin:0 30rpx;">
|
||||||
@ -179,7 +179,7 @@
|
|||||||
sortStyle: ['#ff557f', '#3f3f3f'],
|
sortStyle: ['#ff557f', '#3f3f3f'],
|
||||||
headers: [
|
headers: [
|
||||||
{
|
{
|
||||||
status: '',
|
status: '-3,0,2,3,4,5,6,7,9',
|
||||||
text: '全部'
|
text: '全部'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -221,7 +221,7 @@
|
|||||||
this.selected = option.status
|
this.selected = option.status
|
||||||
this.getList(option.status);
|
this.getList(option.status);
|
||||||
} else {
|
} else {
|
||||||
this.getList('0');
|
this.getList('-3,0,2,3,4,5,6,7,9');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -413,6 +413,8 @@
|
|||||||
// margin-top: 10rpx;
|
// margin-top: 10rpx;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
font-family: PingFang SC, PingFang SC;
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
|
||||||
.s-header {
|
.s-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -425,6 +427,7 @@
|
|||||||
color: #9E9E9E;
|
color: #9E9E9E;
|
||||||
line-height: 26rpx;
|
line-height: 26rpx;
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.s-header.selected {
|
.s-header.selected {
|
||||||
@ -437,7 +440,8 @@
|
|||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
}
|
}
|
||||||
.lines{
|
.lines{
|
||||||
padding-top: 16rpx;
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
width: 44rpx;
|
width: 44rpx;
|
||||||
}
|
}
|
||||||
.lines.selected{
|
.lines.selected{
|
||||||
|
@ -1,718 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="box flex justify-center align-items flex-column">
|
|
||||||
<view class="con-center flex flex-column justify-center align-items">
|
|
||||||
<view class="search flex align-items" style="width: 99%;">
|
|
||||||
<span class="dashed flex align-items justify-center">
|
|
||||||
<image src="../../static/center/search.png" mode=""></image>
|
|
||||||
</span>
|
|
||||||
<span class="line-search"></span>
|
|
||||||
<input type="text" placeholder="搜索您的课程" v-model="keywords" class="input" placeholder-class="plasty" />
|
|
||||||
<span class="searchBtn" @click.stop="search()">搜索</span>
|
|
||||||
</view>
|
|
||||||
<view class="header flex align-items w-100" style="justify-content: space-between;">
|
|
||||||
<span class="s-header flex justify-center align-items" v-for="(item,index) in headers" :key="index"
|
|
||||||
:class="{ selected: headerSelected(item.status) }"
|
|
||||||
@click="selectheader(item.status)">{{item.text}}</span>
|
|
||||||
</view>
|
|
||||||
<span class="line"></span>
|
|
||||||
<!-- <view class="sort flex" style="width: 100%;padding: 20rpx 0;">
|
|
||||||
<JQ-orderBy @switchSort="switchSort" :size="size"></JQ-orderBy>
|
|
||||||
</view> -->
|
|
||||||
<view class="centerBox flex justify-start align-items flex-column">
|
|
||||||
<view class="flex w-100 center flex-column" style="align-items: center;" v-for="(item,index) in list"
|
|
||||||
:key="index">
|
|
||||||
<view class="flex w-100">
|
|
||||||
<image :src="item.detail.headimage" mode="" style="width: 280rpx; height: 200rpx;border-radius: 12rpx;"
|
|
||||||
@click="toDetail(item.shop_id,item.id,item.classes_lib_id,item.order_no)"></image>
|
|
||||||
<view class="flex flex-column rightBox">
|
|
||||||
<view class="flex flex-column"
|
|
||||||
@click="toDetail(item.shop_id,item.id,item.classes_lib_id,item.order_no)">
|
|
||||||
<span class="name">{{item.detail.title}}</span>
|
|
||||||
<!-- <span class="line-row"></span> -->
|
|
||||||
<span class="minge" v-if="selected == 0">课程名额 {{ Number(item.detail.verification_num )}}
|
|
||||||
/
|
|
||||||
{{item.detail.limit_num}}</span>
|
|
||||||
<span class="minge" v-if="selected == 0">剩余时间:24:00:00</span>
|
|
||||||
<span class="minge"
|
|
||||||
v-if="selected == 3 || selected == 6 || selected == 9">{{'购买时间 ' + item.paytime_text.slice(0,10)}}</span>
|
|
||||||
<span class="minge" v-if="selected == 2">{{'预约时间 ' + item.make}}</span>
|
|
||||||
<span class="minge" v-if="selected == 3">{{'课时 ' + item.detail.use_num + "/" + item.detail.classes_num}}</span>
|
|
||||||
<span class="minge" v-if="selected == 9">{{'核销时间 ' + item.finishtime_text.slice(0,10)}}</span>
|
|
||||||
<span class="minge" v-if="selected == -3">{{'取消时间 ' + item.canceltime}}</span>
|
|
||||||
<span class="minge" v-if="selected == 6">{{'退款时间 ' + item.refundtime}}</span>
|
|
||||||
<span class="money" v-if="item.payprice != 0">
|
|
||||||
<span>课程价格:</span>
|
|
||||||
{{'¥' + item.payprice}}</span>
|
|
||||||
<!-- <span class="charge" v-if="item.payprice == 0" >
|
|
||||||
免费
|
|
||||||
</span> -->
|
|
||||||
<span class="charge" v-if="item.payprice == 0" >
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="flex align-items" style="justify-content: flex-end;margin-top: 12rpx;">
|
|
||||||
<span class="Cancel" v-if="selected == 0" @click="Cancel(item.order_no)">取消订单</span>
|
|
||||||
<span class="make" v-if="selected == 0"
|
|
||||||
@click="toPay(item.shop_id,item.id,item.classes_lib_id,item.order_no,1)">去付款</span>
|
|
||||||
<span class="Cancel" v-if="selected == 3 && item.detail.feel == 0" style="width: 100rpx;"
|
|
||||||
@click="service(item.id)">售后</span>
|
|
||||||
<span class="Cancel" v-if="selected == 3 && item.detail.feel == 1" style="width: 100rpx;"
|
|
||||||
@click="service(item.id)">取消</span>
|
|
||||||
<span class="Cancel" v-if="selected == 3" @click="QR(item.id)"
|
|
||||||
style="width: 100rpx; margin-left: 24rpx;">核销</span>
|
|
||||||
<span class="make" v-if="selected == 3"
|
|
||||||
@click="toMake(item.shop_id,item.id,item.classes_lib_id,2)"
|
|
||||||
style="width: 100rpx;">预约</span>
|
|
||||||
<span class="Cancel" v-if="selected == 9">已完成</span>
|
|
||||||
<!-- <span class="make" v-if="selected == 6 || selected == -3 || selected == 9"
|
|
||||||
@click="againBuy(item.classes_lib_id)">再次购买</span> -->
|
|
||||||
<!-- <span class="make" v-if="selected == 6 || selected == -3 || selected == 9"
|
|
||||||
@click.stop="toDetail(item.shop_id,item.id,item.classes_lib_id,item.order_no)">再次购买</span> -->
|
|
||||||
<!-- <span class="QR" v-if="selected == 2" >二维码</span> -->
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
<span class="box-line"></span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<u-popup :show="show" mode="center" :zIndex="99999" :custom-style="popupStyle" closeable="true" @close="close"
|
|
||||||
@open="open">
|
|
||||||
<view class="popup flex flex-column align-items">
|
|
||||||
<view class="pop-center flex">
|
|
||||||
<view class="left">
|
|
||||||
<image :src="qrcode.detail.headimage" mode="" style="width: 280rpx;height: 200rpx;"></image>
|
|
||||||
</view>
|
|
||||||
<view class="right flex flex-column">
|
|
||||||
<span class="title white-space">{{qrcode.detail.title}}</span>
|
|
||||||
<span class="hui"
|
|
||||||
style="margin: 16rpx 0 6rpx 0;">课时:{{qrcode.detail.verification_num}}/{{qrcode.detail.limit_num}}</span>
|
|
||||||
<!-- <span class="hui">日期:{{qrcode.detail.classes_date_text}}</span> -->
|
|
||||||
<!-- <span class="hui" style="margin: 6rpx 0 6rpx 0;">时间:{{qrcode.detail.classes_time_text}}</span> -->
|
|
||||||
<span class="hui" v-if="qrcode && qrcode.detail" style="margin-top: 6rpx;">开始时间:{{ formatTimestamp(qrcode.detail.start_time) }}</span>
|
|
||||||
<span class="hui" v-if="qrcode && qrcode.detail" style="margin: 6rpx 0 6rpx 0;">结束时间:{{ formatTimestamp(qrcode.detail.end_time) }}</span>
|
|
||||||
<span class="hui">地址:{{qrcode.detail.address_detail}}</span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<span class="line-short"></span>
|
|
||||||
<image :src="qrcode.codeimage" mode="" style="width: 376rpx;height: 376rpx;"></image>
|
|
||||||
<span style="margin: 24rpx 0 64rpx 0;">核销二维码</span>
|
|
||||||
</view>
|
|
||||||
</u-popup>
|
|
||||||
<u-loadmore :status="loadStatus" />
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
popupStyle: {
|
|
||||||
width: '690rpx',
|
|
||||||
margin: '0 auto', // 水平居中
|
|
||||||
display: 'flex',
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',
|
|
||||||
padding: '0',
|
|
||||||
borderRadius: '20rpx'
|
|
||||||
},
|
|
||||||
sortList: [{
|
|
||||||
text: '按照价格排序',
|
|
||||||
value: ['acs', 'desc'],
|
|
||||||
}, {
|
|
||||||
text: '按照编号排序',
|
|
||||||
value: ['acs', 'desc'],
|
|
||||||
}],
|
|
||||||
size: 13,
|
|
||||||
sortStyle: ['#ff557f', '#3f3f3f'],
|
|
||||||
headers: [{
|
|
||||||
status: '0',
|
|
||||||
text: '待付款'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
status: '3',
|
|
||||||
text: '进行中'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
status: '9',
|
|
||||||
text: '已完成'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
status: '-3',
|
|
||||||
text: '已取消'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
status: '6',
|
|
||||||
text: '已退款'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
selected: '0',
|
|
||||||
page: 1,
|
|
||||||
limit: 10,
|
|
||||||
loadStatus: 'loading',
|
|
||||||
keywords: '',
|
|
||||||
list: [],
|
|
||||||
show: false,
|
|
||||||
qrcode: '',
|
|
||||||
count:0
|
|
||||||
};
|
|
||||||
},
|
|
||||||
onLoad(option) {
|
|
||||||
this.list = []
|
|
||||||
this.page = 1
|
|
||||||
if (option?.status) {
|
|
||||||
this.selected = option.status
|
|
||||||
this.getList(option.status);
|
|
||||||
} else {
|
|
||||||
this.getList('0');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onReachBottom() {
|
|
||||||
if (this.list.length < this.count) {
|
|
||||||
this.page++;
|
|
||||||
this.getList(this.selected);
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
formatTimestamp(timestamp) {
|
|
||||||
const date = new Date(timestamp * 1000); // 10位时间戳需要乘以1000
|
|
||||||
const year = date.getFullYear();
|
|
||||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
||||||
const day = String(date.getDate()).padStart(2, '0');
|
|
||||||
const hours = String(date.getHours()).padStart(2, '0');
|
|
||||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
||||||
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
||||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
||||||
},
|
|
||||||
// 关闭弹窗
|
|
||||||
close() {
|
|
||||||
this.show = false
|
|
||||||
// this.qrcode = ''
|
|
||||||
},
|
|
||||||
open() {
|
|
||||||
this.show = true
|
|
||||||
},
|
|
||||||
againBuy(id) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/center/detail?id=" + id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 取消支付
|
|
||||||
Cancel(order_no) {
|
|
||||||
console.log(order_no)
|
|
||||||
uni.$u.http.post('/api/school/order/cancel', {
|
|
||||||
order_no: order_no
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.list = []
|
|
||||||
this.getList(0);
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(error => {});
|
|
||||||
},
|
|
||||||
// 跳转预约
|
|
||||||
toMake(id, orderId, classes_lib_id, type) {
|
|
||||||
uni.navigateTo({
|
|
||||||
// url: "/pages/center/applyDetail?id=" + id + "&orderId=" + orderId + "&type=" + 2
|
|
||||||
url: "/pages/center/orderDetail?id=" + id + "&orderId=" + orderId + "&type=" + 2 +
|
|
||||||
"&classes_lib_id=" + classes_lib_id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
toDetail(id, orderId, classes_lib_id, order_no) {
|
|
||||||
let type = null;
|
|
||||||
if (this.selected == 0) {
|
|
||||||
type = 1;
|
|
||||||
} else if (this.selected == 3) {
|
|
||||||
type = 2;
|
|
||||||
} else if (this.selected == 9) {
|
|
||||||
type = 9;
|
|
||||||
} else if (this.selected == -3) {
|
|
||||||
type = -3;
|
|
||||||
} else if (this.selected == 6) {
|
|
||||||
type = 6;
|
|
||||||
} else {
|
|
||||||
type = 0;
|
|
||||||
}
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/center/orderDetail?id=" + id + "&orderId=" + orderId + "&order_no=" + order_no +
|
|
||||||
"&type=" + type + "&classes_lib_id=" + classes_lib_id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 去支付
|
|
||||||
toPay(id, orderId, classes_lib_id, order_no, type) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/center/orderDetail?id=" + id + "&orderId=" + orderId + "&order_no=" + order_no +
|
|
||||||
"&type=" + 1 + "&classes_lib_id=" + classes_lib_id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 售后
|
|
||||||
service(id) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/afterSales/index?id=" + id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 核销码
|
|
||||||
QR(id) {
|
|
||||||
uni.$u.http.get('/api/school/order/detail', {
|
|
||||||
params: {
|
|
||||||
id: id
|
|
||||||
},
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.qrcode = res.data.detail
|
|
||||||
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(error => {});
|
|
||||||
this.show = true
|
|
||||||
},
|
|
||||||
switchSort(index, value) {
|
|
||||||
console.log(index, value);
|
|
||||||
},
|
|
||||||
// 搜索
|
|
||||||
search() {
|
|
||||||
const that = this
|
|
||||||
that.page = 1
|
|
||||||
that.list = []
|
|
||||||
this.getList(this.selected)
|
|
||||||
},
|
|
||||||
// 获取课程列表
|
|
||||||
getList(status) {
|
|
||||||
// if (this.loadStatus === 'nomore') return;
|
|
||||||
uni.$u.http.get('/api/school/order/order_list', {
|
|
||||||
params: {
|
|
||||||
keywords: this.keywords,
|
|
||||||
page: this.page,
|
|
||||||
limit: this.limit,
|
|
||||||
status: status,
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.count = res.data.count
|
|
||||||
this.list = [...this.list, ...res.data.list];
|
|
||||||
if (this.list.length >= res.data.count) {
|
|
||||||
this.loadStatus = 'nomore';
|
|
||||||
} else {
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
console.error('请求失败', error);
|
|
||||||
this.loadStatus = 'loading';
|
|
||||||
});
|
|
||||||
},
|
|
||||||
selectheader(status) {
|
|
||||||
const that = this
|
|
||||||
that.selected = status;
|
|
||||||
console.log(status, '')
|
|
||||||
that.page = 1
|
|
||||||
that.list = []
|
|
||||||
that.getList(status)
|
|
||||||
},
|
|
||||||
headerSelected(status) {
|
|
||||||
return this.selected === status;
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.box {
|
|
||||||
background: linear-gradient(to bottom, #F1F2F8 0%, #FFFFFF 5%, #FFFFFF 100%);
|
|
||||||
|
|
||||||
.con-center {
|
|
||||||
width: 690rpx;
|
|
||||||
// margin-top: 25rpx;
|
|
||||||
|
|
||||||
.centerBack {
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
top: 25rpx;
|
|
||||||
left: 0;
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
height: 50rpx;
|
|
||||||
margin-top: 37rpx;
|
|
||||||
|
|
||||||
.s-header {
|
|
||||||
width: 104rpx;
|
|
||||||
height: 50rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #9E9E9E;
|
|
||||||
line-height: 26rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.s-header.selected {
|
|
||||||
width: 104rpx;
|
|
||||||
height: 50rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
line-height: 26rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-100 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-start {
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-center {
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-items {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-column {
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-start {
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line {
|
|
||||||
margin-top: 12rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.centerBox {
|
|
||||||
width: 690rpx;
|
|
||||||
|
|
||||||
.box-line {
|
|
||||||
width: 400rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
margin-top: 24rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.center {
|
|
||||||
margin: 32rpx 0 32rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rightBox {
|
|
||||||
margin-left: 32rpx;
|
|
||||||
width: 50%;
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 382rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
box-shadow: 1rpx 1rpx 0rpx 0rpx rgba(102, 102, 102, 0.25);
|
|
||||||
margin: 14rpx 0 6rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.name {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #343434;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 1;
|
|
||||||
/* 设置行数 */
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
word-break: break-all;
|
|
||||||
margin-bottom: 24rpx;
|
|
||||||
/* 防止单词被截断 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.minge {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
margin-bottom: 8rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.money {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.Cancel {
|
|
||||||
width: 138rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
line-height: 32rpx;
|
|
||||||
letter-spacing: 4px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.make {
|
|
||||||
width: 138rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
line-height: 32rpx;
|
|
||||||
letter-spacing: 4px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: flex-end;
|
|
||||||
margin-left: 24rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QR {
|
|
||||||
width: 138rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
background: #4974FF;
|
|
||||||
box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #EAEAEA;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: flex-end;
|
|
||||||
margin-top: 50rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.charge {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
line-height: 32rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
margin-top: 24rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
|
|
||||||
.dashed {
|
|
||||||
image {
|
|
||||||
width: 52rpx;
|
|
||||||
height: 52rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-search {
|
|
||||||
width: 2rpx;
|
|
||||||
height: 42rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
// border: 4rpx solid #EAEAEA;
|
|
||||||
padding-left: 12rpx;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .input-placeholder {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #C0C0C0;
|
|
||||||
line-height: 32rpx;
|
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
|
||||||
text-transform: none;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchBtn {
|
|
||||||
width: 128rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup {
|
|
||||||
.header {
|
|
||||||
margin-left: 24rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 42rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
margin-top: 34rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 690rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
margin: 11rpx 0 31rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pop-center {
|
|
||||||
margin-top: 50rpx;
|
|
||||||
align-items: center;
|
|
||||||
width: 650rpx;
|
|
||||||
|
|
||||||
.left {
|
|
||||||
image {
|
|
||||||
border-radius: 12rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
|
||||||
margin-left: 30rpx;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
width: 340rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-short {
|
|
||||||
width: 400rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #D9D9D9;
|
|
||||||
margin: 24rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popList {
|
|
||||||
justify-content: space-between;
|
|
||||||
width: 600rpx;
|
|
||||||
margin-top: 32rpx;
|
|
||||||
|
|
||||||
.hei {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.pop-btn {
|
|
||||||
width: 690rpx;
|
|
||||||
margin-top: 62rpx;
|
|
||||||
justify-content: space-around;
|
|
||||||
|
|
||||||
.Cancel {
|
|
||||||
width: 306rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #008CFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Confirm {
|
|
||||||
width: 306rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 401rpx 401rpx 401rpx 401rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hui {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="box flex justify-center align-items flex-column">
|
<view class="box flex justify-center align-items flex-column">
|
||||||
<view class="con-center flex flex-column justify-center align-items">
|
<view class="con-center flex flex-column justify-center align-items">
|
||||||
|
|
||||||
<view class="tabs align-items">
|
<view class="tabs align-items">
|
||||||
<span
|
<span
|
||||||
class="s-header flex flex-column"
|
class="s-header flex flex-column"
|
||||||
@ -129,9 +130,14 @@
|
|||||||
<span class="part flex justify-center align-items" v-if="item.auth_status != 2" @click="detail(item.id)"> 详情 </span>
|
<span class="part flex justify-center align-items" v-if="item.auth_status != 2" @click="detail(item.id)"> 详情 </span>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex justify-center align-items" v-if="hotList.length == 0" style="margin-top: 150rpx;">
|
|
||||||
<span class="no-data">暂无数据</span>
|
<view class="flex flex-column flex-start align-items" v-if="hotList.length == 0" style="margin-top: 300rpx;">
|
||||||
|
<image src="/static/message/activen.png" mode="" style="width: 200rpx;height: 200rpx;">
|
||||||
|
</image>
|
||||||
|
<view style="margin-top: 50rpx;font-size: 36rpx;color: #323232;">暂无发布活动</view>
|
||||||
|
<view class="tofb" @click="tofb">前往发布</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -265,6 +271,11 @@ export default {
|
|||||||
url: "/pages/center/detailSys?id=" + id,
|
url: "/pages/center/detailSys?id=" + id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
tofb() {
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/center/index',
|
||||||
|
});
|
||||||
|
},
|
||||||
//开始
|
//开始
|
||||||
dateWeeks(e) {
|
dateWeeks(e) {
|
||||||
return dateWeek(e);
|
return dateWeek(e);
|
||||||
@ -544,6 +555,9 @@ export default {
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
font-family: PingFang SC, PingFang SC;
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
.s-header {
|
.s-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -556,6 +570,7 @@ export default {
|
|||||||
color: #9e9e9e;
|
color: #9e9e9e;
|
||||||
line-height: 26rpx;
|
line-height: 26rpx;
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.s-header.selected {
|
.s-header.selected {
|
||||||
@ -568,7 +583,8 @@ export default {
|
|||||||
line-height: 28rpx;
|
line-height: 28rpx;
|
||||||
}
|
}
|
||||||
.lines {
|
.lines {
|
||||||
padding-top: 16rpx;
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
width: 44rpx;
|
width: 44rpx;
|
||||||
}
|
}
|
||||||
.lines.selected {
|
.lines.selected {
|
||||||
@ -579,6 +595,8 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
margin-left: 30rpx;
|
margin-left: 30rpx;
|
||||||
margin-top: 30rpx;
|
margin-top: 30rpx;
|
||||||
|
position: fixed;
|
||||||
|
top: 80rpx;
|
||||||
.span_s{
|
.span_s{
|
||||||
width: 134rpx;
|
width: 134rpx;
|
||||||
height: 60rpx;
|
height: 60rpx;
|
||||||
@ -921,7 +939,7 @@ export default {
|
|||||||
/* 使用省略号表示被截断的文本 */
|
/* 使用省略号表示被截断的文本 */
|
||||||
}
|
}
|
||||||
.hot {
|
.hot {
|
||||||
// margin-top: 30rpx;
|
margin-top: 80rpx;
|
||||||
margin-bottom: 70rpx;
|
margin-bottom: 70rpx;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
|
||||||
@ -1132,4 +1150,18 @@ export default {
|
|||||||
font-size: 42rpx;
|
font-size: 42rpx;
|
||||||
color: #323232;
|
color: #323232;
|
||||||
}
|
}
|
||||||
|
.tofb{
|
||||||
|
margin-top: 50rpx;
|
||||||
|
width: 280rpx;
|
||||||
|
height: 70rpx;
|
||||||
|
background: #323232;
|
||||||
|
border-radius: 198rpx;
|
||||||
|
font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #BBFC5B;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<span class="first-name">{{detail.title}}</span>
|
<span class="first-name">{{detail.title}}</span>
|
||||||
</view>
|
</view>
|
||||||
<view class="first-image flex align-items" style="margin-top: 25rpx;">
|
<view class="first-image flex align-items" style="margin-top: 25rpx;">
|
||||||
<image :src="detailAny.user.avatar" mode="" style="width: 36rpx;height: 36rpx;"></image>
|
<image :src="detailAny.user.avatar" mode="" style="width: 36rpx;height: 36rpx;border-radius: 80rpx ;"></image>
|
||||||
<span style="color:#9C9C9C;">{{ detailAny.user.nickname }}</span>
|
<span style="color:#9C9C9C;">{{ detailAny.user.nickname }}</span>
|
||||||
<span style="color:#9C9C9C;margin-left: 20rpx;">{{ detailAny.join_info.people_number }}人玩过</span>
|
<span style="color:#9C9C9C;margin-left: 20rpx;">{{ detailAny.join_info.people_number }}人玩过</span>
|
||||||
</view>
|
</view>
|
||||||
@ -32,11 +32,11 @@
|
|||||||
<span class="first-image flex align-items space-between"
|
<span class="first-image flex align-items space-between"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
@click.stop="toMap(detail.latitude, detail.longitude, detail.address_detail)">
|
@click.stop="toMap(detail.latitude, detail.longitude, detail.address_detail)">
|
||||||
<view>
|
<view class="flex">
|
||||||
<image src="/static/center/address.png" mode="" class="icon-size"></image>
|
<image src="/static/center/address.png" mode="" class="icon-size"></image>
|
||||||
<span>{{detail.address_detail}}</span>
|
<span>{{detail.address_detail}}</span>
|
||||||
</view>
|
</view>
|
||||||
<image src="/static/detail/daohang.png" class="icon-size" style="width: 50rpx; height: 50rpx;"></image>
|
<image src="/static/detail/daohang.png" class="icon-size" style="width: 48rpx; height: 48rpx;"></image>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
@ -50,21 +50,13 @@
|
|||||||
</span>
|
</span>
|
||||||
</view>
|
</view>
|
||||||
<view class="third-center">
|
<view class="third-center">
|
||||||
<!-- <u-swiper
|
<qrcode-swiper :images="['/static/index/about.png','/static/index/about.png','/static/index/about.png']"> </qrcode-swiper>
|
||||||
:list="detail.ordercode"
|
<l-painter v-for="qrcodesurl in detailAny.ordercode">
|
||||||
previousMargin="30"
|
<l-painter-view css="margin-top: 20rpx;margin-bottom: 20rpx;">
|
||||||
nextMargin="30"
|
<l-painter-qrcode css="width: 200rpx; height: 200rpx;margin:0 auto;" :text="qrcodesurl.miniurl"></l-painter-qrcode>
|
||||||
keyName="miniurl"
|
|
||||||
circular
|
|
||||||
:autoplay="false"
|
|
||||||
radius="5"
|
|
||||||
bgColor="#ffffff"
|
|
||||||
></u-swiper> -->
|
|
||||||
<l-painter>
|
|
||||||
<l-painter-view css="margin-top: 24rpx;">
|
|
||||||
<l-painter-qrcode css="width: 200rpx; height: 200rpx;margin:0 auto" :text="qrcodesurl"></l-painter-qrcode>
|
|
||||||
</l-painter-view>
|
</l-painter-view>
|
||||||
</l-painter>
|
</l-painter>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -97,11 +89,11 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- v-if="detailAny.feel == 0" -->
|
||||||
<view class="footer flex align-items flex-column" style="justify-content: space-between;" >
|
<view class="footer flex align-items flex-column" style="justify-content: space-between;" >
|
||||||
|
|
||||||
<view class="footer-right flex justify-center align-items" >
|
<view class="footer-right flex justify-center align-items" >
|
||||||
<span @click="pament()"> 申请售后 </span>
|
<span @click="service(detailAny.id)"> 申请售后 </span>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -219,10 +211,14 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
|
import qrcodeSwiper from "components/qrcodeSwiper.vue" // 引入 自己定义的tabBar组件
|
||||||
import {
|
import {
|
||||||
dateWeek
|
dateWeek
|
||||||
} from '../../utils/dateFormat'
|
} from '../../utils/dateFormat'
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
qrcodeSwiper
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// formattedTitle() {
|
// formattedTitle() {
|
||||||
// if (this.detail.title.length > 9) {
|
// if (this.detail.title.length > 9) {
|
||||||
@ -296,7 +292,7 @@
|
|||||||
titleStyle: {
|
titleStyle: {
|
||||||
color: '#FFFFFF'
|
color: '#FFFFFF'
|
||||||
},
|
},
|
||||||
qrcodesurl:'' //二维码地址
|
// qrcodesurl:'' //二维码地址
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -483,7 +479,7 @@
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
this.detail = res.data.detail.detail;
|
this.detail = res.data.detail.detail;
|
||||||
this.qrcodesurl = res.data.detail.ordercode[0].miniurl;
|
// this.qrcodesurl = res.data.detail.ordercode[0].miniurl;
|
||||||
this.detailAny = res.data.detail;
|
this.detailAny = res.data.detail;
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
@ -733,7 +729,12 @@
|
|||||||
phoneNumber: phone
|
phoneNumber: phone
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
//申请售后
|
||||||
|
service(id) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/afterSales/index?id=${id}`
|
||||||
|
})
|
||||||
|
},
|
||||||
// 取消选择
|
// 取消选择
|
||||||
cancel() {
|
cancel() {
|
||||||
this.selectedTime = null
|
this.selectedTime = null
|
||||||
|
@ -582,7 +582,7 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
margin: 0 10rpx;
|
||||||
img {
|
img {
|
||||||
width: 150rpx;
|
width: 150rpx;
|
||||||
height: 150rpx;
|
height: 150rpx;
|
||||||
|
52
pages.json
@ -131,46 +131,17 @@
|
|||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "隐私政策"
|
"navigationBarTitleText": "隐私政策"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/stationStemys",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "系统消息"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"subPackages": [{
|
"subPackages": [{
|
||||||
"root": "packageA",
|
"root": "packageA",
|
||||||
"pages": [{
|
"pages": [
|
||||||
"path": "activity/activityDetaill",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "活动详情"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "activity/exercise",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "我的活动"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "activity/acList",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "活动管理"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "activity/exerciseDetaill",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "活动详情"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "index/About",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "关于我们"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "index/previousDetail",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "课程详情"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "my/person-detail",
|
"path": "my/person-detail",
|
||||||
"style": {
|
"style": {
|
||||||
@ -247,7 +218,7 @@
|
|||||||
{
|
{
|
||||||
"path": "my/stationDetail",
|
"path": "my/stationDetail",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "消息通知"
|
"navigationBarTitleText": "消息详情"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -314,12 +285,7 @@
|
|||||||
"navigationBarTitleText": "订单管理"
|
"navigationBarTitleText": "订单管理"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "center/teacherClass",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "全部课程"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "my/refund",
|
"path": "my/refund",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -1,131 +1,176 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="center-box">
|
<view class="box flex flex-column align-items">
|
||||||
<view class="box flex flex-column flex-start">
|
<view class="title_logo">
|
||||||
<!-- <view class="search flex align-items" style="width: 99%;">
|
<image
|
||||||
<span class="dashed">
|
src="/static/index/xiaoxilogo.png"
|
||||||
<image src="../../static/center/search.png" mode=""></image>
|
mode=""
|
||||||
</span>
|
style="width: 237rpx; height: 56rpx;"
|
||||||
<span class="line-search"></span>
|
></image>
|
||||||
<input type="text" placeholder="搜索活动" v-model="keywords" class="input" placeholder-class="plasty" />
|
</view>
|
||||||
<span class="searchBtn bg-blue" @click.stop="search()">搜索</span>
|
<view class="box_center flex flex-column align-items">
|
||||||
</view> -->
|
<view class="top flex align-items justify-between" @click="toSystem">
|
||||||
|
<view class="flex align-items">
|
||||||
|
<image src="/static/index/xitongxiaoxi.png" mode="" style="width: 70rpx;height: 70rpx;margin-right: 20rpx;"></image>
|
||||||
|
<span class="xtxiaoxi">系统消息</span>
|
||||||
|
</view>
|
||||||
|
<view class="flex align-items">
|
||||||
|
<span class="xtNum">{{ numbers }}</span>
|
||||||
|
<image src="/static/detail/zidong.png" mode="" style="width: 20rpx;height: 20rpx;margin-left: 20rpx;" ></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<span class="lines"></span>
|
||||||
|
<view class="center flex flex-column">
|
||||||
|
<!-- <span class="hui" v-if="unread.length != 0">未读消息</span> -->
|
||||||
|
<!-- @click="detail(item.id,item.params)" -->
|
||||||
|
<view class="list flex flex-column" v-for="(item,index) in alllist" :key="index">
|
||||||
|
|
||||||
<u-navbar title="消息" :border="false" :placeholder="true" :autoBack="false" :is-back="false" :leftIcon="none">
|
<view class="flex align-items left" v-if="item.params.images.length > 0">
|
||||||
<!-- <view class="" slot="center">
|
<image :src="item.params.images[0]" mode="" style="width: 80rpx;height: 80rpx;border-radius: 8rpx;"></image>
|
||||||
<u-search class="u-search" v-model="keywords" placeholder="请输入搜索内容" :showAction="false"
|
<span class="white-space title1">{{ item.params.title }}</span>
|
||||||
@change="search()"></u-search>
|
</view>
|
||||||
</view> -->
|
|
||||||
</u-navbar>
|
|
||||||
|
|
||||||
<view class="flex flex-column flex-start align-items" style="margin-top: 300rpx;">
|
<view class="right flex flex-column">
|
||||||
|
<view class="flex align-items justify-between" style="margin-top: 30rpx;">
|
||||||
|
<span class="white-space title">{{item.title}}</span>
|
||||||
|
<span class="time">{{item.createtime_text}}</span>
|
||||||
|
</view>
|
||||||
|
<span class="white-space text">{{item.desc}}</span>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- <span class="jiao">
|
||||||
|
<u-badge :isDot="true" type="success"></u-badge>
|
||||||
|
</span> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <u-loadmore :status="loadStatus" /> -->
|
||||||
|
<view class="flex flex-column flex-start align-items" v-if="alllist.length == 0" style="margin-top: 100rpx;">
|
||||||
<image src="/static/message/message.png" mode="" style="width: 256rpx;height: 240rpx;">
|
<image src="/static/message/message.png" mode="" style="width: 256rpx;height: 240rpx;">
|
||||||
</image>
|
</image>
|
||||||
<view>暂无活动消息~</view>
|
<view>暂无活动消息~</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="listBox flex flex-column flex-start">
|
|
||||||
<view class="list flex flex-column flex-start" v-for="(item,index) in list" :key="index"
|
|
||||||
@click.stop="open(item.id)">
|
|
||||||
<image :src="item.headimage" mode="" style="width: 690rpx;height: 260rpx;border-radius: 10rpx;">
|
|
||||||
</image>
|
|
||||||
<view class="flex align-items" style="margin: 24rpx 0 0 32rpx;">
|
|
||||||
<span class="Sign flex justify-center align-items" style="color: #FFFFFF;background: #A4A4A4;"
|
|
||||||
v-if="item.has_sign_expire == 1">已 结 束</span>
|
|
||||||
<span class="Sign flex justify-center align-items"
|
|
||||||
style="color: #222222;background: #BEEE03;"
|
|
||||||
v-if="item.has_sign_expire == 2">报 名</span>
|
|
||||||
<span class="title white-space">{{item.title}}</span>
|
|
||||||
</view>
|
</view>
|
||||||
|
<tab-bar :tabBarShow="tabBarShow"></tab-bar>
|
||||||
<view class="icon flex align-items">
|
|
||||||
<image src="../../static/index/address.png" mode="" class="icon-size"></image>
|
|
||||||
<span class="white-space">{{item.address_detail}}</span>
|
|
||||||
</view>
|
|
||||||
<view class="icon flex align-items" style="margin-bottom: 32rpx;margin-top: 14rpx;">
|
|
||||||
<image src="../../static/index/clock.png" mode="" class="icon-size"></image>
|
|
||||||
<span class="white-space">{{item.start_time_text}}</span>
|
|
||||||
</view>
|
|
||||||
<span class="Sign bg-hui flex justify-center align-items" v-if="item.has_sign_expire == 1">已 结 束</span>
|
|
||||||
<span class="Sign bg-blue flex justify-center align-items" v-if="item.has_sign_expire == 2">报 名</span>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
|
|
||||||
<!-- <view class="footer flex justify-center align-items">
|
|
||||||
<u-loadmore :status="loadStatus" />
|
|
||||||
</view> -->
|
|
||||||
</view>
|
|
||||||
<tab-bar :tabBarShow="2"></tab-bar>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { mapActions } from 'vuex';
|
||||||
export default {
|
export default {
|
||||||
|
...mapActions(['number']),
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
tabBarShow:null,
|
||||||
|
isFetching: false,
|
||||||
|
// selected: 'system,classes,order,activity',
|
||||||
|
selected: 'order',
|
||||||
|
alllist: [],// 活动订单所有消息
|
||||||
|
unread_number: '',
|
||||||
|
unread_system_number: '',
|
||||||
|
unread_activity_number: '',
|
||||||
|
keywords: '',
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
keywords: '',
|
loadStatus: 'loading',
|
||||||
|
status: '',
|
||||||
|
mini_type: '',
|
||||||
|
type: '',
|
||||||
list: [],
|
list: [],
|
||||||
count: 1,
|
show: false,
|
||||||
loadStatus: 'nomore'
|
id: '',
|
||||||
|
title: '标题'
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
// onLoad() {
|
|
||||||
// this.getList()
|
|
||||||
// },
|
|
||||||
onShow() {
|
onShow() {
|
||||||
this.page = 1
|
this.resetLists();
|
||||||
this.limit = 10
|
this.number()
|
||||||
this.list = []
|
this.getinit()
|
||||||
this.getList()
|
this.fetchMessages(this.selected);
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
numbers() {
|
||||||
|
return this.unread_system_number + this.unread_activity_number;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
if (this.count) {
|
this.page++;
|
||||||
|
this.fetchMessages(this.selected);
|
||||||
this.getList();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 搜索
|
getinit() {
|
||||||
search() {
|
uni.$u.http.get('/api/index/init', {}).then(res => {
|
||||||
this.page = 1
|
|
||||||
this.limit = 10
|
|
||||||
this.list = []
|
|
||||||
this.getList()
|
|
||||||
},
|
|
||||||
getList() {
|
|
||||||
uni.$u.http.get('/api/school/activity/activity_list', {
|
|
||||||
params: {
|
|
||||||
keywords: this.keywords,
|
|
||||||
page: this.page,
|
|
||||||
limit: this.limit,
|
|
||||||
is_expire: 0,
|
|
||||||
order: 'normal'
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
console.log(res.data.list.data)
|
if (res.data.base_info.miniapp_activity_swtich == 1) {
|
||||||
if (res.data.list.data.length > 0) {
|
this.tabBarShow = 2;
|
||||||
this.count = res.data.list.data.length;
|
|
||||||
if (this.count) {
|
|
||||||
this.loadStatus = 'nomore';
|
|
||||||
this.page++;
|
|
||||||
} else {
|
} else {
|
||||||
this.loadStatus = 'loading';
|
this.tabBarShow = 1;
|
||||||
}
|
}
|
||||||
this.list = [...this.list, ...res.data.list.data];
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 获取时间
|
||||||
|
getFormattedDates() {
|
||||||
|
const today = new Date();
|
||||||
|
const startOfDay = new Date(today);
|
||||||
|
startOfDay.setHours(0, 0, 0, 0);
|
||||||
|
|
||||||
// this.count = this.list.length
|
const endOfDay = new Date(today);
|
||||||
// if (this.list.length >= res.data.count) {
|
endOfDay.setHours(23, 59, 59, 999);
|
||||||
// this.loadStatus = 'loading';
|
|
||||||
|
const yesterday = new Date(today);
|
||||||
|
yesterday.setDate(today.getDate() - 1);
|
||||||
|
const startOfYesterday = new Date(1970, 0, 1, 0, 0, 0, 0); // 1970/01/01 00:00:00
|
||||||
|
const endOfYesterday = new Date(yesterday);
|
||||||
|
endOfYesterday.setHours(23, 59, 59, 999);
|
||||||
|
|
||||||
|
const formatDate = (date) => {
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
const hours = String(date.getHours()).padStart(2, '0');
|
||||||
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||||
|
|
||||||
|
return `${year}/${month}/${day} ${hours}:${minutes}:${seconds}`;
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
today: `${formatDate(startOfDay)}-${formatDate(endOfDay)}`,
|
||||||
|
yesterday: `${formatDate(startOfYesterday)}-${formatDate(endOfYesterday)}`
|
||||||
|
};
|
||||||
|
},
|
||||||
|
fetchMessages(status) {
|
||||||
|
// const dates = this.getFormattedDates();
|
||||||
|
this.getList(status, "alllist" ,'1,2','');
|
||||||
|
|
||||||
|
// this.getList(status, 'read', '2', dates.today);
|
||||||
|
},
|
||||||
|
toSystem(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url:"/pages/activity/stationStemys"
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 消息详情
|
||||||
|
// detail(id,params){
|
||||||
|
// const message = JSON.parse(params);
|
||||||
|
// if (message.event == 'user_auth_need_after'){
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url:"/packageA/my/settleIn?shop_id=" + message.shop_id + "&id=" + id
|
||||||
|
// })
|
||||||
// } else {
|
// } else {
|
||||||
// this.loadStatus = 'nomore';
|
// uni.navigateTo({
|
||||||
|
// url:"/packageA/my/stationDetail?id=" + id
|
||||||
|
// })
|
||||||
// }
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
} else {
|
// 消息未读
|
||||||
this.count = this.list.length
|
number() {
|
||||||
this.loadStatus = 'nomore';
|
uni.$u.http.get('/api/school/message/message_count').then(res => {
|
||||||
}
|
if (res.code == 1) {
|
||||||
|
this.unread_system_number = res.data.unread_system_number;
|
||||||
|
this.unread_activity_number = res.data.unread_activity_number;
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: res.msg,
|
title: res.msg,
|
||||||
@ -133,135 +178,80 @@
|
|||||||
duration: 2000
|
duration: 2000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {});
|
||||||
let token = uni.getStorageSync('token')
|
},
|
||||||
if (token) {
|
// 一键已读
|
||||||
uni.showToast({
|
one() {
|
||||||
title: `请在'我的'页面 右上角退出重新登陆`,
|
uni.$u.http.get('/api/school/message/batch', {
|
||||||
icon: 'none',
|
params: {
|
||||||
duration: 3000,
|
id: '*',
|
||||||
complete: function() {
|
status: this.selected,
|
||||||
setTimeout(function() {
|
mini_type: '',
|
||||||
uni.switchTab({
|
event: ''
|
||||||
url: '/pages/my/index',
|
|
||||||
});
|
|
||||||
}, 3000);
|
|
||||||
}
|
}
|
||||||
});
|
}).then(res => {
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.resetLists();
|
||||||
|
this.number();
|
||||||
|
this.fetchMessages('system,classes,order');
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: `请在'我的'页面 登陆后重试`,
|
title: res.msg,
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
duration: 3000,
|
duration: 2000
|
||||||
complete: function() {
|
|
||||||
setTimeout(function() {
|
|
||||||
uni.switchTab({
|
|
||||||
url: '/pages/my/index',
|
|
||||||
});
|
|
||||||
}, 3000);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}).catch(error => {});
|
||||||
|
},
|
||||||
|
// 获取消息列表
|
||||||
|
async getList(status,zt,type,time) {
|
||||||
|
uni.$u.http.get('/api/school/message/message_list', {
|
||||||
|
params: {
|
||||||
|
page: this.page,
|
||||||
|
limit: this.limit,
|
||||||
|
status: status,
|
||||||
|
// mini_type: '',
|
||||||
|
type: type,
|
||||||
|
},
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.updateList(zt, res.data.list, res.data.count);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.msg,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
}).catch(error => {});
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
open(id) {
|
// 更新列表
|
||||||
uni.navigateTo({
|
updateList(type, list, count) {
|
||||||
url: "/packageA/activity/activityDetaill?id=" + id
|
console.log(type, list, count)
|
||||||
})
|
const targetList = this[type];
|
||||||
|
this[type] = [...targetList, ...list];
|
||||||
|
console.log('this.loadStatus ',this.loadStatus )
|
||||||
|
this.loadStatus = targetList.length >= count ? 'nomore' : 'loading';
|
||||||
},
|
},
|
||||||
|
// 重置列表
|
||||||
|
resetLists() {
|
||||||
|
this.page = 1;
|
||||||
|
this.alllist = [];
|
||||||
|
this.loadStatus = 'loading'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.center-box {
|
|
||||||
width: 750rpx;
|
|
||||||
background: #f7f7f7;
|
|
||||||
min-height: calc(100vh - 130rpx);
|
|
||||||
}
|
|
||||||
|
|
||||||
.box {
|
.box {
|
||||||
width: 690rpx;
|
background-color: #F1F2F8;
|
||||||
padding: 0 30rpx 0rpx 30rpx;
|
background-image: url("https://naweigetetest2.hschool.com.cn/dyqc/bgx2.png");
|
||||||
border-radius: 0px 0px 0px 0px;
|
background-size: 750rpx 797rpx;
|
||||||
}
|
background-repeat: no-repeat;
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
margin-top: 27rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
border: 2rpx solid #008CFF;
|
|
||||||
|
|
||||||
.dashed {
|
|
||||||
image {
|
|
||||||
width: 52rpx;
|
|
||||||
height: 52rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-search {
|
|
||||||
width: 2rpx;
|
|
||||||
height: 42rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
// border: 4rpx solid #EAEAEA;
|
|
||||||
padding-left: 12rpx;
|
|
||||||
height: 100%;
|
|
||||||
width: 78%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .input-placeholder {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #C0C0C0;
|
|
||||||
line-height: 32rpx;
|
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
|
||||||
text-transform: none;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchBtn {
|
|
||||||
width: 128rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.w-100 {
|
.w-100 {
|
||||||
@ -272,9 +262,26 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.flex-start {
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-space {
|
||||||
|
overflow: hidden;
|
||||||
|
/* 确保超出容器的文本被隐藏 */
|
||||||
|
white-space: nowrap;
|
||||||
|
/* 确保文本在一行内显示 */
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
/* 使用省略号表示被截断的文本 */
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.justify-center {
|
.justify-center {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
.justify-between {
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
.align-items {
|
.align-items {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -287,64 +294,195 @@
|
|||||||
.justify-start {
|
.justify-start {
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
}
|
}
|
||||||
|
.title_logo{
|
||||||
.listBox {
|
|
||||||
width: 690rpx;
|
width: 690rpx;
|
||||||
margin-top: 10rpx;
|
margin-top: 110rpx;
|
||||||
|
display: flex;
|
||||||
.list {
|
}
|
||||||
height: 456rpx;
|
.box_center{
|
||||||
margin-top: 32rpx;
|
margin-top: 30rpx;
|
||||||
position: relative;
|
width: 750rpx;
|
||||||
background: #FFFFFF;
|
background: linear-gradient( 180deg, #FFFFFF 0%, #F7F7F7 23%);
|
||||||
border-radius: 10rpx;
|
// background: #F7F7F7;
|
||||||
|
min-height: 80vh;
|
||||||
.title {
|
border-radius: 44rpx;
|
||||||
width: 522rpx;
|
.lines{
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
width: 690rpx;
|
||||||
|
height: 1rpx;
|
||||||
|
background: #F0F0F0;
|
||||||
|
}
|
||||||
|
.top{
|
||||||
|
width: 690rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
.xtxiaoxi{
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
color: #000000;
|
color: #3D3D3D;
|
||||||
|
line-height: 45rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
.xtNum{
|
||||||
|
width: 56rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
background: #FF4810;
|
||||||
|
border-radius: 84rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.center {
|
||||||
|
width: 690rpx;
|
||||||
|
margin-bottom: 200rpx;
|
||||||
|
.list {
|
||||||
|
width: 690rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.left {
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
.title1 {
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 800;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color: #9C9C9C;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
width: 460rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.right {
|
||||||
width: 580rpx;
|
margin-left:30rpx;
|
||||||
margin-top: 8rpx;
|
margin-right: 30rpx;
|
||||||
margin-left: 32rpx;
|
.title {
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #202020;
|
||||||
|
line-height: 34rpx;
|
||||||
|
width: 360rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin-top: 20rpx;
|
||||||
font-family: PingFang SC, PingFang SC;
|
font-family: PingFang SC, PingFang SC;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #7A7A7A;
|
color: #3D3D3D;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.Sign {
|
// .jiao {
|
||||||
width: 88rpx;
|
// position: absolute;
|
||||||
height: 40rpx;
|
// left: 0;
|
||||||
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
// top: 0;
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
width: 690rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
|
||||||
|
.s-header {
|
||||||
|
width: 152rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #9E9E9E;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.numberPos {
|
||||||
|
// width: 45rpx;
|
||||||
|
// height: 50rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: -10rpx;
|
||||||
|
top: -4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.s-header.selected {
|
||||||
|
width: 152rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
background: #008CFF;
|
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
line-height: 26rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.yidu {
|
||||||
|
border-top: #008CFF 1rpx solid;
|
||||||
|
width: 690rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
height: 66rpx;
|
||||||
|
margin-top: 18rpx;
|
||||||
|
|
||||||
|
.news {
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
margin-right: 16rpx;
|
color: #9E9E9E;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-size {
|
.One {
|
||||||
width: 32rpx;
|
width: 132rpx;
|
||||||
height: 32rpx;
|
height: 40rpx;
|
||||||
margin-right: 8rpx;
|
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||||
}
|
border: 1rpx solid #9E9E9E;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
.footer {
|
font-weight: 500;
|
||||||
margin-bottom: 200rpx;
|
font-size: 24rpx;
|
||||||
}
|
color: #9E9E9E;
|
||||||
|
|
||||||
.slot-wrap {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.hui {
|
||||||
|
width: 132rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
background: #E7E7E7;
|
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #9E9E9E;
|
||||||
|
margin: 24rpx 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
/* 如果您想让slot内容占满整个导航栏的宽度 */
|
|
||||||
/* flex: 1; */
|
|
||||||
/* 如果您想让slot内容与导航栏左右有空隙 */
|
|
||||||
/* padding: 0 30rpx; */
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
144
pages/activity/stationStemys.vue
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<template>
|
||||||
|
<view class="box flex justify-center flex-column">
|
||||||
|
<view class="center flex flex-column flex-start" v-for="detail,index in list" :key="index">
|
||||||
|
<span class="title">{{detail.title}}</span>
|
||||||
|
<span class="span" style="margin-top: 20rpx;">
|
||||||
|
<!-- <u-parse :content="detail.desc" :selectable="true"></u-parse> -->
|
||||||
|
<rich-text :nodes="detail.desc" selectable user-select></rich-text>
|
||||||
|
</span>
|
||||||
|
<span class="span" style="margin-top: 20rpx; color: #999999 ;">{{detail.createtime_text}}</span>
|
||||||
|
<span class="jiao">
|
||||||
|
<u-badge :isDot="true" type="error"></u-badge>
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="loadStatus" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
page: 1,
|
||||||
|
limit: 10,
|
||||||
|
list:[],
|
||||||
|
loadStatus:'',
|
||||||
|
loadStatus: 'loading'
|
||||||
|
};
|
||||||
|
},
|
||||||
|
onLoad(option) {
|
||||||
|
console.log(option)
|
||||||
|
this.getDetail();
|
||||||
|
this.resetLists()
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.page++;
|
||||||
|
this.getDetail();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetail() {
|
||||||
|
uni.$u.http.get('/api/school/message/message_list', {
|
||||||
|
params: {
|
||||||
|
page: this.page,
|
||||||
|
limit: this.limit,
|
||||||
|
status: 'system,activity',
|
||||||
|
type: "1",
|
||||||
|
}
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.list = [...res.data.list , ...this.list ]
|
||||||
|
this.loadStatus = this.list.length >= res.data.count ? 'nomore' : 'loading';
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.msg,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).catch(error => {});
|
||||||
|
},
|
||||||
|
// 重置列表
|
||||||
|
resetLists() {
|
||||||
|
this.page = 1;
|
||||||
|
this.alllist = [];
|
||||||
|
this.loadStatus = 'loading'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.box {
|
||||||
|
background: #F1F2F8;
|
||||||
|
width: 750rpx;
|
||||||
|
height: 100vh;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w-100 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-start {
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-space {
|
||||||
|
overflow: hidden;
|
||||||
|
/* 确保超出容器的文本被隐藏 */
|
||||||
|
white-space: nowrap;
|
||||||
|
/* 确保文本在一行内显示 */
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
/* 使用省略号表示被截断的文本 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.justify-center {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-items {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-column {
|
||||||
|
flex-flow: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.justify-start {
|
||||||
|
justify-content: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
margin: 30rpx;
|
||||||
|
width: 690rpx;
|
||||||
|
height: 278rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: relative;
|
||||||
|
.span {
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 26rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 800;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color: #202020 ;
|
||||||
|
}
|
||||||
|
.jiao {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -19,22 +19,22 @@
|
|||||||
<view class="flex">
|
<view class="flex">
|
||||||
<image v-if="detail.images" :src="detail.images[0]" mode="" style="width: 159rpx;height: 159rpx;border-radius: 18rpx;"></image>
|
<image v-if="detail.images" :src="detail.images[0]" mode="" style="width: 159rpx;height: 159rpx;border-radius: 18rpx;"></image>
|
||||||
<view class="flex align-items flex-column" style="margin-left: 20rpx;">
|
<view class="flex align-items flex-column" style="margin-left: 20rpx;">
|
||||||
<span class="first-name">{{detail.title}}</span>
|
<span class="first-name white-space">{{detail.title}}</span>
|
||||||
<view class="rbot">
|
<view class="rbot flex align-items">
|
||||||
<image src="/static/center/address.png" mode="" style="width: 32rpx;height: 32rpx;"></image>
|
<image src="/static/center/address.png" mode="" style="width: 32rpx;height: 32rpx;margin-right: 20rpx;"></image>
|
||||||
<span>{{detail.address_detail}}</span>
|
<span class="white-space">{{detail.address_detail}}</span>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span class="flex align-items" style="width: 100%;margin-top: 20rpx;justify-content: space-between;">
|
<span class="flex align-items" style="width: 100%;justify-content: space-between;">
|
||||||
<view class="tt1">活动时间</view>
|
<view class="tt1">活动时间</view>
|
||||||
<span style="font-size: 14px;">{{formattedTime.formattedTime}}</span>
|
<span style="font-size: 14px;">{{formattedTime.formattedTime}}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span class="flex align-items" style="width: 100%;margin-top: 20rpx;justify-content: space-between;">
|
<span class="flex align-items" style="width: 100%;justify-content: space-between;">
|
||||||
<view class="tt1">数量<span> (剩余{{detail.join_info.stock - detail.join_info.people_number}}张)</span></view>
|
<view class="tt1">数量<span> (剩余{{detail.join_info.stock - detail.join_info.people_number}}张)</span></view>
|
||||||
<span class="flex align-items">
|
<span class="flex align-items">
|
||||||
<image style="width: 42rpx;height: 42rpx;" src="/static/detail/jian.png" @click="removeMon"></image>
|
<image style="width: 42rpx;height: 42rpx;" src="/static/detail/jian.png" @click="removeMon"></image>
|
||||||
@ -43,12 +43,12 @@
|
|||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span class="flex align-items" style="width: 100%;margin-top: 20rpx;justify-content: space-between;">
|
<span class="flex align-items" style="width: 100%;justify-content: space-between;">
|
||||||
<view class="tt1">支付金额</view>
|
<view class="tt1">支付金额</view>
|
||||||
<span style="color: #FF4810;font-weight: 900;">¥{{ priceGem }}</span>
|
<span style="color: #FF4810;font-weight: 900;">¥{{ priceGem }}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span class="flex align-items" style="width: 100%;margin-top: 20rpx;justify-content: space-between;margin-bottom: 50rpx;">
|
<span class="flex align-items" style="width: 100%;justify-content: space-between;margin-bottom: 40rpx;">
|
||||||
<view class="tt1">支付方式</view>
|
<view class="tt1">支付方式</view>
|
||||||
<span class="flex align-items">
|
<span class="flex align-items">
|
||||||
<image style="width: 44rpx;height: 44rpx;" src="/static/detail/weixin.png"></image>
|
<image style="width: 44rpx;height: 44rpx;" src="/static/detail/weixin.png"></image>
|
||||||
@ -61,7 +61,7 @@
|
|||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="third flex flex-column" style="justify-content: flex-start;">
|
<view class="third flex flex-column" style="justify-content: flex-start;" v-if="priceGem > 0">
|
||||||
<view class="third-top flex align-items">
|
<view class="third-top flex align-items">
|
||||||
<span>退款政策
|
<span>退款政策
|
||||||
<image class="icons" src="/static/detail/xiangqing.png"></image>
|
<image class="icons" src="/static/detail/xiangqing.png"></image>
|
||||||
@ -81,11 +81,13 @@
|
|||||||
<uni-td>0%</uni-td>
|
<uni-td>0%</uni-td>
|
||||||
<uni-td>0</uni-td>
|
<uni-td>0</uni-td>
|
||||||
</uni-tr>
|
</uni-tr>
|
||||||
|
|
||||||
<uni-tr v-if="detail.refund_info.status == 5">
|
<uni-tr v-if="detail.refund_info.status == 5">
|
||||||
<uni-td>报名开始至{{ fomartertime }}</uni-td>
|
<uni-td>报名开始至{{ fomartertime }}</uni-td>
|
||||||
<uni-td>需协商</uni-td>
|
<uni-td>需协商</uni-td>
|
||||||
<uni-td>需协商</uni-td>
|
<uni-td>需协商</uni-td>
|
||||||
</uni-tr>
|
</uni-tr>
|
||||||
|
|
||||||
</uni-table>
|
</uni-table>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -295,7 +297,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
this.loginShow();
|
// this.loginShow();
|
||||||
this.userInfo = uni.getStorageSync("userInfo")
|
this.userInfo = uni.getStorageSync("userInfo")
|
||||||
this.id = options.id
|
this.id = options.id
|
||||||
if (options.type == 2) {
|
if (options.type == 2) {
|
||||||
@ -305,7 +307,7 @@
|
|||||||
if (options.type == 1) {
|
if (options.type == 1) {
|
||||||
this.type = 1
|
this.type = 1
|
||||||
this.order_no = options.order_no
|
this.order_no = options.order_no
|
||||||
this.pament()
|
this.create()
|
||||||
}
|
}
|
||||||
console.log(options.id)
|
console.log(options.id)
|
||||||
this.getDetail()
|
this.getDetail()
|
||||||
@ -630,7 +632,7 @@
|
|||||||
complete: function() {
|
complete: function() {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: "/packageA/my/orderList?status=" + 3
|
url: "/packageA/my/exercise?status=" + "2,3"
|
||||||
})
|
})
|
||||||
}, 2000);
|
}, 2000);
|
||||||
}
|
}
|
||||||
@ -835,7 +837,7 @@
|
|||||||
}
|
}
|
||||||
.first-name{
|
.first-name{
|
||||||
width: 430rpx;
|
width: 430rpx;
|
||||||
height: 52rpx;
|
// height: 77rpx;
|
||||||
font-family: PingFang SC, PingFang SC;
|
font-family: PingFang SC, PingFang SC;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
@ -847,7 +849,7 @@
|
|||||||
height: 52rpx;
|
height: 52rpx;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #323232;
|
color: #323232;
|
||||||
margin-top: 20rpx;
|
margin-top: 60rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -997,7 +999,7 @@
|
|||||||
width: 690rpx;
|
width: 690rpx;
|
||||||
height: 1rpx;
|
height: 1rpx;
|
||||||
background: #F0F0F0;
|
background: #F0F0F0;
|
||||||
margin: 19rpx 0;
|
margin: 30rpx 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-size {
|
.icon-size {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<view class="box flex justify-start flex-column align-items" :class="overlay ? 'no-scroll' : ''">
|
<view class="box flex justify-start flex-column align-items" :class="overlay ? 'no-scroll' : ''">
|
||||||
<view class="swiper">
|
<view class="swiper">
|
||||||
<u-swiper :list="detail.images" indicator indicatorActiveColor="#323232" indicatorMode="dot" :indicator-style="{ bottom: '60rpx',zIndex: 999}"
|
<u-swiper :list="detail.images" indicator indicatorActiveColor="#323232" indicatorMode="dot" :indicator-style="{ bottom: '60rpx',zIndex: 999}"
|
||||||
height="580rpx" circular></u-swiper>
|
:height="height_sw" circular></u-swiper>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="con-center w-100 flex justify-center flex-column align-items flex-start">
|
<view class="con-center w-100 flex justify-center flex-column align-items flex-start">
|
||||||
@ -56,11 +56,11 @@
|
|||||||
<view class="second-box flex align-items space-between">
|
<view class="second-box flex align-items space-between">
|
||||||
<view class="flex align-items">
|
<view class="flex align-items">
|
||||||
<u-avatar-group :urls="detail.join_info.users"
|
<u-avatar-group :urls="detail.join_info.users"
|
||||||
keyName="avatar" size="24" gap="0.3" :maxCount="3"></u-avatar-group>
|
keyName="avatar" size="30" gap="0.3" :maxCount="3"></u-avatar-group>
|
||||||
<image
|
<image
|
||||||
src="/static/index/dian.png"
|
src="/static/index/dian.png"
|
||||||
:class="detail.join_info.users.length > 0 ? '' :'smalld'"
|
:class="detail.join_info.users.length > 0 ? '' :'smalld'"
|
||||||
style="width: 60rpx;height: 60rpx;z-index: 1;"
|
style="width: 60rpx;height: 60rpx;margin-left:-20rpx;z-index: 1;"
|
||||||
></image>
|
></image>
|
||||||
</view>
|
</view>
|
||||||
<span class="number">{{detail.join_info.people_number}}/{{detail.join_info.stock >= 10000 ? '9999+' : detail.join_info.stock}}
|
<span class="number">{{detail.join_info.people_number}}/{{detail.join_info.stock >= 10000 ? '9999+' : detail.join_info.stock}}
|
||||||
@ -119,7 +119,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="footer-right flex justify-center align-items">
|
<view class="footer-right flex justify-center align-items">
|
||||||
<span v-if="type == 0 && detail.feel == 0" @click="sign()"> 支付并参加 </span>
|
<span v-if="type == 0 && detail.feel == 0" @click="sign()"> 支付并参加 </span>
|
||||||
<span v-if="type == 0 && detail.feel == 1" @click="signs()"> 免费参加 </span>
|
<span v-if="type == 0 && detail.feel == 1" @click="sign()"> 免费参加 </span>
|
||||||
<!-- <span v-if="type == 1 && detail.feel == 0" @click="buy()"> 立即支付 </span>
|
<!-- <span v-if="type == 1 && detail.feel == 0" @click="buy()"> 立即支付 </span>
|
||||||
<span v-if="type == 1 && detail.feel == 1" @click="buy()"> 确认报名 </span>
|
<span v-if="type == 1 && detail.feel == 1" @click="buy()"> 确认报名 </span>
|
||||||
<span v-if="type == 2" @click="open()"> 我要预约 </span>
|
<span v-if="type == 2" @click="open()"> 我要预约 </span>
|
||||||
@ -298,6 +298,7 @@
|
|||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
height_sw:'580rpx',
|
||||||
style: {
|
style: {
|
||||||
// 字符串的形式
|
// 字符串的形式
|
||||||
img: 'width: 100%'
|
img: 'width: 100%'
|
||||||
@ -549,13 +550,6 @@
|
|||||||
url: '/pages/center/applyDetail?id=' + this.id
|
url: '/pages/center/applyDetail?id=' + this.id
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
|
||||||
//免费报名
|
|
||||||
signs() {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: '/pages/center/applyDetail?id=' + this.id+"&type=1"
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
buy() {
|
buy() {
|
||||||
@ -1608,10 +1602,10 @@
|
|||||||
.wx-slider-handle{
|
.wx-slider-handle{
|
||||||
background: url('@/static/detail/qiu.png') !important;
|
background: url('@/static/detail/qiu.png') !important;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
background-size: 28rpx 28rpx !important;
|
background-size: 30rpx 30rpx !important;
|
||||||
width: 28rpx;
|
width: 28rpx;
|
||||||
height: 28rpx;
|
height: 28rpx;
|
||||||
top: 18rpx;
|
top: 14rpx;
|
||||||
margin-left: -14rpx !important;
|
margin-left: -14rpx !important;
|
||||||
}
|
}
|
||||||
.wx-slider-value{
|
.wx-slider-value{
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
></image>
|
></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="box flex flex-column align-items" @click="tofb">
|
<view class="box flex flex-column align-items">
|
||||||
<view class="first flex flex-column align-items justify-start">
|
<view class="first flex flex-column align-items justify-start">
|
||||||
<view class="row flex align-items" style="margin-top: 25rpx;">
|
<view class="row flex align-items" style="margin-top: 25rpx;">
|
||||||
<span >
|
<span >
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<span class="line-row" style="margin-top: 0;"></span>
|
<span class="line-row" style="margin-top: 0;"></span>
|
||||||
|
|
||||||
<!-- 图片 -->
|
<!-- 图片 -->
|
||||||
<view class="row flex flex-column" style="margin-top: 42rpx;">
|
<view class="shenfen row flex flex-column" style="margin-top: 42rpx;">
|
||||||
<u-upload :fileList="fileList1" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
|
<u-upload :fileList="fileList1" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
|
||||||
@oversize="oversize" name="1" multiple :maxSize="1*1024*1024" :maxCount="5">
|
@oversize="oversize" name="1" multiple :maxSize="1*1024*1024" :maxCount="5">
|
||||||
<view class="pic_view">
|
<view class="pic_view">
|
||||||
@ -94,9 +94,9 @@
|
|||||||
<span class="label flex align-items ">
|
<span class="label flex align-items ">
|
||||||
<span style="color: #3D3D3D;">*</span>退款政策
|
<span style="color: #3D3D3D;">*</span>退款政策
|
||||||
</span>
|
</span>
|
||||||
<!-- @click="tuikuan = true" -->
|
<!-- -->
|
||||||
<span class="row-right" >
|
<span class="row-right" @click="tuikuan = true">
|
||||||
<input type="text" placeholder="请选择退款政策" class="input" disabled="true" v-model="form.refund_id"
|
<input type="text" placeholder="请选择退款政策" class="input" disabled="true" v-model="form.refund_idn"
|
||||||
placeholder-class="plasty_c" />
|
placeholder-class="plasty_c" />
|
||||||
<u-icon name="arrow-right" color="#323232"></u-icon>
|
<u-icon name="arrow-right" color="#323232"></u-icon>
|
||||||
</span>
|
</span>
|
||||||
@ -160,13 +160,18 @@
|
|||||||
<view class="popup_tkall">
|
<view class="popup_tkall">
|
||||||
<view class="popup_tk"> 选择退款政策</view>
|
<view class="popup_tk"> 选择退款政策</view>
|
||||||
<view class="closetk" @click="closetuikuan">取消</view>
|
<view class="closetk" @click="closetuikuan">取消</view>
|
||||||
<view class="confirmtk">确认</view>
|
<view class="confirmtk"@click="closetuikuan">确认</view>
|
||||||
<view class="popup-content">
|
<scroll-view scroll-y="true" class="popup-content">
|
||||||
<view class="popup-content-item" v-for="(item,index) in refund_list" :key="index" @click="selectItem(index,item)">
|
<view class="popup-content-item flex align-items" :class="[{ active: currents === index }]" v-for="(item,index) in refund_list" :key="index" @click="selectItem(index,item)">
|
||||||
|
<view style="width: 540rpx;">
|
||||||
<span class="popup-content-item-title">{{ item.title }}</span>
|
<span class="popup-content-item-title">{{ item.title }}</span>
|
||||||
<span v-html="item.desc" class="popup-content-item-content"></span>
|
<span v-html="item.desc" class="popup-content-item-content" style="margin-top: 20rpx;"></span>
|
||||||
</view>
|
</view>
|
||||||
|
<image v-if="currents === index" src="@/static/fabu/check.png" mode="widthFix" style="width: 44rpx;height: 44rpx;" />
|
||||||
|
<image v-else src="@/static/fabu/nocheck.png" mode="widthFix" style="width: 44rpx;height: 44rpx;" />
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
|
|
||||||
@ -261,8 +266,8 @@
|
|||||||
birthShow1: false, // 报名日期弹窗
|
birthShow1: false, // 报名日期弹窗
|
||||||
value: false,
|
value: false,
|
||||||
scrollTop: 0,
|
scrollTop: 0,
|
||||||
minDate: dayjs(new Date()).unix()*1000,
|
minDate: dayjs().add(2, 'hour').valueOf(),
|
||||||
minDate1: dayjs(new Date()).unix()*1000,
|
minDate1: dayjs().add(4, 'hour').valueOf(),
|
||||||
old: {
|
old: {
|
||||||
scrollTop: 0
|
scrollTop: 0
|
||||||
},
|
},
|
||||||
@ -282,7 +287,8 @@
|
|||||||
// 活动分类名字
|
// 活动分类名字
|
||||||
cate_idsName:"",
|
cate_idsName:"",
|
||||||
content: '',
|
content: '',
|
||||||
refund_id:'随时退',
|
refund_id:'',
|
||||||
|
refund_idn:'',
|
||||||
price:1,
|
price:1,
|
||||||
stock:'',
|
stock:'',
|
||||||
sign_time:'',
|
sign_time:'',
|
||||||
@ -321,7 +327,7 @@
|
|||||||
flexColumn: 'column'
|
flexColumn: 'column'
|
||||||
},
|
},
|
||||||
current:0,
|
current:0,
|
||||||
|
currents:0,
|
||||||
institutionList: [],
|
institutionList: [],
|
||||||
images: '',
|
images: '',
|
||||||
fileList1: [], // 用于存储第一个上传组件的文件列表
|
fileList1: [], // 用于存储第一个上传组件的文件列表
|
||||||
@ -335,7 +341,7 @@
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.tofb();
|
// this.tofb();
|
||||||
// this.searchStatus()
|
// this.searchStatus()
|
||||||
this.getAgreement()
|
this.getAgreement()
|
||||||
this.getBqList();
|
this.getBqList();
|
||||||
@ -349,7 +355,8 @@
|
|||||||
// 活动分类名字
|
// 活动分类名字
|
||||||
cate_idsName:"",
|
cate_idsName:"",
|
||||||
content: '',
|
content: '',
|
||||||
refund_id:'随时退',
|
refund_id:'',
|
||||||
|
refund_idn:'',
|
||||||
price:1,
|
price:1,
|
||||||
stock:'',
|
stock:'',
|
||||||
sign_time:'',
|
sign_time:'',
|
||||||
@ -377,26 +384,32 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
//登录及发布
|
//选择政策
|
||||||
tofb() {
|
selectItem(index,item) {
|
||||||
const token = uni.getStorageSync('token')
|
this.currents = index;
|
||||||
if (token) {
|
this.form.refund_id = item.id;
|
||||||
return true;
|
this.form.refund_idn = item.title;
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请登录',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000,
|
|
||||||
complete: function() {
|
|
||||||
setTimeout(function() {
|
|
||||||
uni.switchTab({
|
|
||||||
url: '/pages/my/index',
|
|
||||||
});
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
//登录及发布
|
||||||
|
// tofb() {
|
||||||
|
// const token = uni.getStorageSync('token')
|
||||||
|
// if (token) {
|
||||||
|
// return true;
|
||||||
|
// } else {
|
||||||
|
// uni.showToast({
|
||||||
|
// title: '请登录',
|
||||||
|
// icon: 'none',
|
||||||
|
// duration: 2000,
|
||||||
|
// complete: function() {
|
||||||
|
// setTimeout(function() {
|
||||||
|
// uni.switchTab({
|
||||||
|
// url: '/pages/my/index',
|
||||||
|
// });
|
||||||
|
// }, 2000);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// },
|
||||||
// 获取本地最近使用
|
// 获取本地最近使用
|
||||||
getitembq(){
|
getitembq(){
|
||||||
if (uni.getStorageSync("zjlist") != "") {
|
if (uni.getStorageSync("zjlist") != "") {
|
||||||
@ -587,7 +600,9 @@
|
|||||||
this.show = true
|
this.show = true
|
||||||
},
|
},
|
||||||
opentuikuan(){
|
opentuikuan(){
|
||||||
this.tuikuan = true
|
this.tuikuan = true;
|
||||||
|
this.form.refund_id = 1;
|
||||||
|
this.form.refund_idn = '随时退';
|
||||||
},
|
},
|
||||||
change() {
|
change() {
|
||||||
this.agree = true
|
this.agree = true
|
||||||
@ -960,9 +975,9 @@
|
|||||||
|
|
||||||
// }
|
// }
|
||||||
.title_logo{
|
.title_logo{
|
||||||
width: 100%;
|
width: 690rpx;
|
||||||
margin-top: 100rpx;
|
margin-top: 110rpx;
|
||||||
margin-left: 40rpx;
|
display: flex;
|
||||||
}
|
}
|
||||||
.backImg {
|
.backImg {
|
||||||
// background: linear-gradient(to bottom, #F1F2F8 0%, #F1F2F8 50%, #FFFFFF 100%);
|
// background: linear-gradient(to bottom, #F1F2F8 0%, #F1F2F8 50%, #FFFFFF 100%);
|
||||||
@ -1137,16 +1152,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.ji ::v-deep .u-upload .u-upload__wrap__preview__image {
|
|
||||||
width: 690rpx !important;
|
|
||||||
height: 450rpx !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.shenfen ::v-deep .u-upload .u-upload__wrap__preview__image {
|
.shenfen ::v-deep .u-upload .u-upload__wrap__preview__image {
|
||||||
width: 690rpx !important;
|
width: 196rpx !important;
|
||||||
height: 450rpx !important;
|
height: 196rpx !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom {
|
.bottom {
|
||||||
@ -1338,18 +1346,38 @@
|
|||||||
}
|
}
|
||||||
.popup-content{
|
.popup-content{
|
||||||
height: 900rpx;
|
height: 900rpx;
|
||||||
overflow-y: auto;
|
// overflow-y: auto;
|
||||||
}
|
}
|
||||||
.popup-content-item{
|
.popup-content-item{
|
||||||
width: 690rpx;
|
width: 690rpx;
|
||||||
padding: 30rpx;
|
padding: 30rpx;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background: #F7F7F7;
|
background: #F7F7F7;
|
||||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
border-radius: 18rpx;
|
||||||
border: 2rpx solid #EAEAEA;
|
border: 5rpx solid #EAEAEA;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 30rpx;
|
||||||
:active{
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
justify-content: space-between;
|
||||||
|
color: #3D3D3D;
|
||||||
|
&.active{
|
||||||
|
background: #FAFFF3;
|
||||||
|
border: 5rpx solid;
|
||||||
border-image: linear-gradient(270deg, rgba(251, 246, 109, 1), rgba(156, 234, 162, 1)) 2 2;
|
border-image: linear-gradient(270deg, rgba(251, 246, 109, 1), rgba(156, 234, 162, 1)) 2 2;
|
||||||
|
border-radius: 18rpx;
|
||||||
|
clip-path: inset(0px round 16rpx);
|
||||||
|
}
|
||||||
|
.popup-content-item-title{
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
.popup-content-item-content{
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
line-height: 45rpx;
|
||||||
|
::v-deep rich-text{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,905 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="center-box">
|
|
||||||
<view class="box flex justify-center align-items flex-column">
|
|
||||||
<view class="search flex align-items" style="width: 99%;">
|
|
||||||
<u-navbar :title="navbarTitle" :border="false" :placeholder="true" :autoBack="false" :is-back="false" :leftIcon="none">
|
|
||||||
<view class="" slot="center">
|
|
||||||
<u-search class="u-search" v-model="keywords" placeholder="请输入搜索内容" :showAction="false"
|
|
||||||
@change="search()"></u-search>
|
|
||||||
</view>
|
|
||||||
</u-navbar>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 推荐课程 -->
|
|
||||||
<view class="hot flex flex-column" :style="{ marginTop: capsuleHeight()}">
|
|
||||||
<view class="hot-top flex align-items ">
|
|
||||||
<image src="/static/index/Subtract.png" mode=""
|
|
||||||
style="width: 16rpx; height: 22rpx;margin: 0 8rpx 0 32rpx;"></image>
|
|
||||||
<span>优质课程陪您成长~</span>
|
|
||||||
</view>
|
|
||||||
<view class="content flex align-items" style="background: none;overflow-y: hidden;">
|
|
||||||
<view class=" ovr flex align-items" style="align-items: self-start;" v-for="(item,index) in Tjlist"
|
|
||||||
:key="index">
|
|
||||||
<view class="hot-center justify-start flex flex-column" style="align-items: flex-start;"
|
|
||||||
@click="detail(item.id)">
|
|
||||||
<image :src="item.headimage" mode=""
|
|
||||||
style="width: 308rpx; height: 168rpx;border-radius: 20rpx;"></image>
|
|
||||||
<span class="jita white-space">{{item.title}}</span>
|
|
||||||
<span class="price" v-if="item.feel == 0">¥{{item.price}}</span>
|
|
||||||
<span class="price" v-if="item.feel == 1">公益</span>
|
|
||||||
<view class="mingePos flex justify-center align-items">
|
|
||||||
<image src="/static/index/fire.png" mode=""
|
|
||||||
style="width: 22rpx;height: 24rpx;margin: 0 8rpx 0 12rpx;">
|
|
||||||
</image>
|
|
||||||
<span class="minge">{{ Number(item.sign_num + item.virtual_num)}} /
|
|
||||||
{{item.limit_num}}</span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <view class="" v-else>
|
|
||||||
<u-empty mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png">
|
|
||||||
</u-empty>
|
|
||||||
</view> -->
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 标签 -->
|
|
||||||
<view class="tabs">
|
|
||||||
<view v-for="(tab, index) in list" :key="index" :class="['tab-item', { active: current === index }]"
|
|
||||||
@click="handleClick(index)">
|
|
||||||
{{ tab.name }}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- 课程 -->
|
|
||||||
<view class="totalClass flex flex-column">
|
|
||||||
<!-- <view class="total-top flex align-items space-between">
|
|
||||||
<image src="../../static/center/TotalClass.png" mode="" style="width: 168rpx;height: 48rpx;">
|
|
||||||
</image>
|
|
||||||
</view> -->
|
|
||||||
<!-- <view v-if="LoadingShow" class="flex justify-center align-items" style="height: 300rpx;">
|
|
||||||
加载中...
|
|
||||||
</view> -->
|
|
||||||
<view class="totalBox flex align-items flex-column">
|
|
||||||
<view class="flex align-items flex-column w-100 bbb" v-for="(item,index) in hotList" :key="index"
|
|
||||||
@click="detail(item.id)">
|
|
||||||
<view class="top flex align-items" style="justify-content: space-around;margin-top: 24rpx;">
|
|
||||||
<view class="left">
|
|
||||||
<image :src="item.headimage" mode=""
|
|
||||||
style="width: 240rpx; height: 196rpx;border-radius: 12rpx 12rpx 12rpx 12rpx;">
|
|
||||||
</image>
|
|
||||||
</view>
|
|
||||||
<view class="right flex flex-column " style="align-items: self-start;">
|
|
||||||
<span class="title white-space">{{item.title}}</span>
|
|
||||||
<view class=" row flex flex align-items">
|
|
||||||
<span
|
|
||||||
v-for="(items,index1) in item.classes_type_name"
|
|
||||||
class="remen flex justify-center align-items">{{items}}</span>
|
|
||||||
<span
|
|
||||||
style="background: #FFF1ED;color: #FF4810;margin-left:8rpx; max-width: 170rpx;"
|
|
||||||
class="remen flex justify-center align-items">
|
|
||||||
<span class="white-space">{{item.shop.name}}</span>
|
|
||||||
</span>
|
|
||||||
</view>
|
|
||||||
<view class="flex flex-column pos">
|
|
||||||
<view class=" time flex align-items white-space">
|
|
||||||
<image src="../../static/index/clock.png" mode=""
|
|
||||||
style="width: 24rpx;height: 24rpx;"></image>
|
|
||||||
<span class="white-space" style="margin-left: 8rpx;">{{item.start_time_text}}
|
|
||||||
</span>
|
|
||||||
</view>
|
|
||||||
<view class="address flex align-items white-space">
|
|
||||||
<image src="../../static/index/address.png" mode=""
|
|
||||||
style="width: 24rpx;height: 24rpx;"></image>
|
|
||||||
<span class="white-space"
|
|
||||||
style="margin-left: 8rpx; width: 220rpx;">{{item.address_detail}}</span>
|
|
||||||
</view>
|
|
||||||
<span class=" ab flex align-items" v-if="item.feel == 0" style="">
|
|
||||||
<span class="m">¥</span>
|
|
||||||
<span class="money">{{item.price}}</span>
|
|
||||||
</span>
|
|
||||||
<span class="ab no flex align-items" v-if="item.feel == 1">公益</span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<span style="width: 626rpx;height: 2rpx;background: #EEEEEE;margin: 32rpx 0 0 0;"></span>
|
|
||||||
<view class="bottom flex align-items">
|
|
||||||
<view class="flex align-items">
|
|
||||||
<span class="flex align-items" style="width: 200rpx;">
|
|
||||||
<u-avatar-group :urls="item.unpaid_user_data"
|
|
||||||
:extraValue="item.unpaid_user_data.length - 5" keyName="head_image" size="24"
|
|
||||||
gap="0.4"></u-avatar-group>
|
|
||||||
</span>
|
|
||||||
<view class="number flex align-items">
|
|
||||||
{{'已报名: ' + Number(item.sign_num + item.virtual_num)}}/{{item.limit_num}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<span class="part flex justify-center align-items">
|
|
||||||
报名参加
|
|
||||||
</span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <view class="" v-else>
|
|
||||||
<u-empty mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png">
|
|
||||||
</u-empty>
|
|
||||||
</view> -->
|
|
||||||
<view class="more flex flex-column align-items">
|
|
||||||
<span class="line-lone"></span>
|
|
||||||
<span class="line-erect"></span>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="footer flex">
|
|
||||||
<u-loadmore :status="loadStatus" />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<tab-bar :tabBarShow="1"></tab-bar>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// import FilterMenu from "./myFilterMenu/index.vue"
|
|
||||||
// import {menuOption} from "@/common/menuOptions.js"
|
|
||||||
// import {
|
|
||||||
// updateStaticData
|
|
||||||
// } from '@/common/data.js';
|
|
||||||
export default {
|
|
||||||
// components: {
|
|
||||||
// FilterMenu
|
|
||||||
// },
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
value1: 1,
|
|
||||||
options1: [{
|
|
||||||
label: '默认排序',
|
|
||||||
value: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '距离优先',
|
|
||||||
value: 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '价格优先',
|
|
||||||
value: 3,
|
|
||||||
}
|
|
||||||
],
|
|
||||||
selectedLabel: '选项1',
|
|
||||||
selectedValue: 1,
|
|
||||||
searchValue: '',
|
|
||||||
value: 0,
|
|
||||||
range: [{
|
|
||||||
value: 0,
|
|
||||||
text: "篮球"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 1,
|
|
||||||
text: "足球"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 2,
|
|
||||||
text: "游泳"
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
list: [{
|
|
||||||
name: '全部课程'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '文化艺术'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '职业发展'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '社会融入'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '形势政策'
|
|
||||||
},
|
|
||||||
],
|
|
||||||
current: 0,
|
|
||||||
menuOption: {},
|
|
||||||
unread_number: '',
|
|
||||||
listQuery: {
|
|
||||||
priceStart: '',
|
|
||||||
priceEnd: ''
|
|
||||||
},
|
|
||||||
LoadingShow: true,
|
|
||||||
page: 1,
|
|
||||||
limit: 10,
|
|
||||||
tjShow: true,
|
|
||||||
keywords: '',
|
|
||||||
hotList: [],
|
|
||||||
Tjlist: [],
|
|
||||||
staticData: [],
|
|
||||||
loadStatus: 'loading',
|
|
||||||
district: '', //县区
|
|
||||||
classes_label_ids: '', //热门
|
|
||||||
classes_cate_ids: '', //标签
|
|
||||||
classes_type: '14,15,16,17', //类型
|
|
||||||
last_page: 0
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onLoad() {
|
|
||||||
uni.hideTabBar()
|
|
||||||
},
|
|
||||||
onShow() {
|
|
||||||
this.resetLists()
|
|
||||||
// this.fetchAndUpdateStaticData()
|
|
||||||
this.getTjlList()
|
|
||||||
this.getTotalList()
|
|
||||||
},
|
|
||||||
onReachBottom() {
|
|
||||||
if (this.page < this.last_page) {
|
|
||||||
this.page++;
|
|
||||||
this.getTotalList();
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
handleDropdownChange(value) {
|
|
||||||
const selectedItem = this.menuList.find(item => item.value === value);
|
|
||||||
if (selectedItem) {
|
|
||||||
this.selectedLabel = selectedItem.label;
|
|
||||||
this.selectedValue = selectedItem.value;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取胶囊高度
|
|
||||||
capsuleHeight() {
|
|
||||||
console.log(uni.getMenuButtonBoundingClientRect())
|
|
||||||
if (uni?.getMenuButtonBoundingClientRect()) {
|
|
||||||
return `${uni.getMenuButtonBoundingClientRect().height + uni.getMenuButtonBoundingClientRect().top + 26}rpx`;
|
|
||||||
} else {
|
|
||||||
return `180rpx`;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleClick(index) {
|
|
||||||
this.current = index;
|
|
||||||
if (index == 0) {
|
|
||||||
this.classes_type = "14,15,16,17"
|
|
||||||
} else if (index == 1) {
|
|
||||||
this.classes_type = '15'
|
|
||||||
} else if (index == 2) {
|
|
||||||
this.classes_type = '16'
|
|
||||||
} else if (index == 3) {
|
|
||||||
this.classes_type = '17'
|
|
||||||
} else if (index == 3) {
|
|
||||||
this.classes_type = '14'
|
|
||||||
}
|
|
||||||
this.hotList = []
|
|
||||||
this.getTotalList()
|
|
||||||
},
|
|
||||||
handleSearch(value) {
|
|
||||||
this.keywords = value
|
|
||||||
this.search()
|
|
||||||
},
|
|
||||||
|
|
||||||
// 重置列表
|
|
||||||
resetLists() {
|
|
||||||
this.page = 1;
|
|
||||||
this.hotList = []
|
|
||||||
this.loadStatus = 'loading'
|
|
||||||
},
|
|
||||||
// 搜索
|
|
||||||
search() {
|
|
||||||
if (this.keywords == '') {
|
|
||||||
this.tjShow = true
|
|
||||||
} else {
|
|
||||||
this.tjShow = false
|
|
||||||
}
|
|
||||||
this.resetLists()
|
|
||||||
this.getTotalList()
|
|
||||||
},
|
|
||||||
// 获取报名详情
|
|
||||||
getPeople(id) {
|
|
||||||
return uni.$u.http.get('/api/school/classes/people', {
|
|
||||||
params: {
|
|
||||||
id: id,
|
|
||||||
have_real: 1
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
return res.data.unpaid_user_data;
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
throw new Error(res.msg); // 抛出错误以便 catch 捕获
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请求失败,请稍后再试',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
throw error; // 抛出错误以便 catch 捕获
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 全部课程
|
|
||||||
getTotalList() {
|
|
||||||
uni.$u.http.get('/api/school/classes/classes_list', {
|
|
||||||
params: {
|
|
||||||
page: this.page,
|
|
||||||
limit: this.limit,
|
|
||||||
order: 'normal',
|
|
||||||
has_shop: 1,
|
|
||||||
is_expire: 2,
|
|
||||||
keywords: this.keywords,
|
|
||||||
district: this.district, //县区
|
|
||||||
// classes_label_ids: this.classes_label_ids, //热门
|
|
||||||
// classes_cate_ids: this.classes_cate_ids, //标签
|
|
||||||
classes_type: this.classes_type //类型
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
// setTimeout(() => {
|
|
||||||
// this.LoadingShow = false; // 数据加载完成,关闭loading
|
|
||||||
// }, 100); // 模拟2秒的加载时间
|
|
||||||
this.last_page = res.data.list.last_page
|
|
||||||
const dataLiat = [...this.hotList, ...res.data.list.data]
|
|
||||||
|
|
||||||
const promises = dataLiat.map(item => {
|
|
||||||
return this.getPeople(item.id).then(peopleData => {
|
|
||||||
item.unpaid_user_data = peopleData;
|
|
||||||
}).catch(error => {
|
|
||||||
console.error(`Failed to get people data for id ${item.id}:`,
|
|
||||||
error);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
// 等待所有异步操作完成
|
|
||||||
Promise.all(promises).then(() => {
|
|
||||||
this.hotList = dataLiat;
|
|
||||||
}).catch(error => {
|
|
||||||
console.error('Error in fetching people data:', error);
|
|
||||||
});
|
|
||||||
this.loadStatus = this.hotList.length >= res.data.list.total ? 'nomore' :
|
|
||||||
'loading';
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
this.loadStatus = 'nomore';
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请求失败,请稍后再试',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
this.loadStatus = 'nomore';
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 获取推荐课程
|
|
||||||
getTjlList() {
|
|
||||||
uni.$u.http.get('/api/school/classes/classes_list', {
|
|
||||||
params: {
|
|
||||||
page: 1,
|
|
||||||
limit: 10,
|
|
||||||
order: 'recommend',
|
|
||||||
is_expire: 2
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code == 1) {
|
|
||||||
this.Tjlist = res.data.list.data
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请求失败,请稍后再试',
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
resethandle(index) {
|
|
||||||
this.listQuery = {}
|
|
||||||
},
|
|
||||||
|
|
||||||
jump() {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: '/pages/center/list',
|
|
||||||
success: res => {},
|
|
||||||
fail: () => {},
|
|
||||||
complete: () => {}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
detail(id) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/center/detail?id=" + id
|
|
||||||
})
|
|
||||||
},
|
|
||||||
onClickMenuIndex(props) {
|
|
||||||
console.log('onClickMenuIndex', props)
|
|
||||||
},
|
|
||||||
//关闭
|
|
||||||
onClose(e) {
|
|
||||||
console.log('onClose', e)
|
|
||||||
},
|
|
||||||
onOpen() {
|
|
||||||
console.log('onOpen')
|
|
||||||
},
|
|
||||||
//确认搜索
|
|
||||||
onSearch(e) {
|
|
||||||
console.log('onSearch', e)
|
|
||||||
},
|
|
||||||
handleConfirm(data) {
|
|
||||||
console.log('确认选择的数据:', data);
|
|
||||||
this.classes_cate_ids = data.classes_cate_ids.join(',')
|
|
||||||
this.classes_label_ids = data.classes_label_ids.join(',')
|
|
||||||
this.district = data.district.join(',')
|
|
||||||
this.classes_type = data.classes_type.join(',')
|
|
||||||
this.resetLists()
|
|
||||||
this.getTotalList()
|
|
||||||
// 进一步处理 selectedData
|
|
||||||
// 例如,发送到服务器或更新本地状态
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.center-box {
|
|
||||||
width: 750rpx;
|
|
||||||
min-height: 100vh;
|
|
||||||
background: #F2F2F2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box {
|
|
||||||
width: 690rpx;
|
|
||||||
padding: 0 30rpx 0rpx 30rpx;
|
|
||||||
border-radius: 0px 0px 0px 0px;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-space {
|
|
||||||
overflow: hidden;
|
|
||||||
/* 确保超出容器的文本被隐藏 */
|
|
||||||
white-space: nowrap;
|
|
||||||
/* 确保文本在一行内显示 */
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
/* 使用省略号表示被截断的文本 */
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
margin-top: 27rpx;
|
|
||||||
width: 690rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
// box-shadow: 2rpx 2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
|
|
||||||
// border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
// border: 2rpx solid #008CFF;
|
|
||||||
|
|
||||||
.dashed {
|
|
||||||
image {
|
|
||||||
width: 52rpx;
|
|
||||||
height: 52rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-search {
|
|
||||||
width: 2rpx;
|
|
||||||
height: 42rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
// border: 4rpx solid #EAEAEA;
|
|
||||||
padding-left: 12rpx;
|
|
||||||
height: 100%;
|
|
||||||
width: 78%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .input-placeholder {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #C0C0C0;
|
|
||||||
line-height: 32rpx;
|
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
|
||||||
text-transform: none;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchBtn {
|
|
||||||
width: 128rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.w-100 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-center {
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-items {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-column {
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justify-start {
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.totalClass {
|
|
||||||
width: 100%;
|
|
||||||
|
|
||||||
.total-top {
|
|
||||||
padding-bottom: 12rpx;
|
|
||||||
border-bottom: 2rpx solid #008CFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.totalBox {
|
|
||||||
// height: 462rpx;
|
|
||||||
// overflow-x: auto;
|
|
||||||
/* 允许横向滚动 */
|
|
||||||
// white-space: nowrap;
|
|
||||||
|
|
||||||
|
|
||||||
width: 690rpx;
|
|
||||||
|
|
||||||
.bbb {
|
|
||||||
background: #FFFFFF;
|
|
||||||
margin-top: 24rpx;
|
|
||||||
border-radius: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
|
||||||
margin-left: 24rpx;
|
|
||||||
width: 338rpx;
|
|
||||||
|
|
||||||
.title {
|
|
||||||
width: 338rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 34rpx;
|
|
||||||
color: #343434;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row {
|
|
||||||
margin: 10rpx 0 26rpx 0;
|
|
||||||
|
|
||||||
.remen {
|
|
||||||
// width: 136rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
background: #EBFAF5;
|
|
||||||
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
|
||||||
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #14BC84;
|
|
||||||
line-height: 28rpx;
|
|
||||||
padding: 2rpx 8rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-colum {
|
|
||||||
width: 1rpx;
|
|
||||||
height: 32rpx;
|
|
||||||
background: #7A7A7A;
|
|
||||||
margin: 0 13rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.name {
|
|
||||||
width: 110rpx;
|
|
||||||
height: 32rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
line-height: 32rpx;
|
|
||||||
margin-left: 12rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-row {
|
|
||||||
width: 338rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #E4E4E4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jigou {
|
|
||||||
width: 312rpx;
|
|
||||||
// height: 32rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
margin: 4rpx 0 14rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.time {
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #A4A4A4;
|
|
||||||
line-height: 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.address {
|
|
||||||
|
|
||||||
width: 350rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #A4A4A4;
|
|
||||||
line-height: 30rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.bottom {
|
|
||||||
margin: 32rpx 0 32rpx 0;
|
|
||||||
width: 626rpx;
|
|
||||||
|
|
||||||
.number {
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #222222;
|
|
||||||
line-height: 30rpx;
|
|
||||||
width: 242rpx;
|
|
||||||
margin-left: 42rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text {
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 26rpx;
|
|
||||||
color: #7A7A7A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.money {
|
|
||||||
width: 150rpx;
|
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
font-weight: 800;
|
|
||||||
font-size: 36rpx;
|
|
||||||
color: #FF2323;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.ovr {
|
|
||||||
width: 312rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|
||||||
margin-top: 18rpx;
|
|
||||||
margin-right: 24rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.more {
|
|
||||||
margin-top: 62rpx;
|
|
||||||
|
|
||||||
.line-lone {
|
|
||||||
width: 260rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-erect {
|
|
||||||
margin-top: 16rpx;
|
|
||||||
width: 80rpx;
|
|
||||||
height: 1rpx;
|
|
||||||
background: #008CFF;
|
|
||||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot {
|
|
||||||
|
|
||||||
.hot-top {
|
|
||||||
width: 278rpx;
|
|
||||||
height: 44rpx;
|
|
||||||
background: linear-gradient(90deg, #FDF850 0%, #85EE9C 100%);
|
|
||||||
border-radius: 200rpx 200rpx 200rpx 200rpx;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #000000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.ovr {
|
|
||||||
width: 308rpx;
|
|
||||||
height: 304rpx;
|
|
||||||
background: #FFFFFF;
|
|
||||||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
|
||||||
margin-right: 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
margin-top: 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jita {
|
|
||||||
width: 244rpx;
|
|
||||||
height: 44rpx;
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 30rpx;
|
|
||||||
color: #000000;
|
|
||||||
margin: 24rpx 32rpx 8rpx 32rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.price {
|
|
||||||
width: 212rpx;
|
|
||||||
height: 36rpx;
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FF4810;
|
|
||||||
margin-left: 32rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-center {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mingePos {
|
|
||||||
min-width: 118rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
background: rgba(0, 0, 0, 0.7);
|
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
||||||
position: absolute;
|
|
||||||
top: 40%;
|
|
||||||
right: 3%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
margin: 120rpx 0 40rpx 0;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #BCBCBC;
|
|
||||||
line-height: 32rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.u-search {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tabs {
|
|
||||||
display: flex;
|
|
||||||
overflow-x: auto;
|
|
||||||
margin-top: 64rpx;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
/* 优化滚动效果 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.tab-item {
|
|
||||||
flex: 0 0 auto;
|
|
||||||
text-align: center;
|
|
||||||
margin-right: 40rpx;
|
|
||||||
position: relative;
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 30rpx;
|
|
||||||
color: #222222;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tab-item.active {
|
|
||||||
background-image: url("/static/center/footer.png");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: bottom;
|
|
||||||
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #222222;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pos {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
.ab {
|
|
||||||
position: absolute;
|
|
||||||
right: 0%;
|
|
||||||
bottom: 0%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.m {
|
|
||||||
width: 28rpx;
|
|
||||||
height: 42rpx;
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #FF4810;
|
|
||||||
}
|
|
||||||
|
|
||||||
.money {
|
|
||||||
width: 68rpx;
|
|
||||||
font-family: D-DIN-PRO, D-DIN-PRO;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 36rpx;
|
|
||||||
color: #FF4810;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no {
|
|
||||||
width: 64rpx;
|
|
||||||
height: 48rpx;
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #FF4810;
|
|
||||||
line-height: 38rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.part {
|
|
||||||
width: 176rpx;
|
|
||||||
height: 64rpx;
|
|
||||||
background: #BEEE03;
|
|
||||||
border-radius: 200rpx;
|
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #222222;
|
|
||||||
line-height: 33rpx;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -93,7 +93,7 @@
|
|||||||
<view class="time flex align-items white-space">
|
<view class="time flex align-items white-space">
|
||||||
<span class="time_tex" v-if="item.status == 2">{{ '报名中' }}</span>
|
<span class="time_tex" v-if="item.status == 2">{{ '报名中' }}</span>
|
||||||
<!-- <span class="time_tex time_texs" v-if="item.status == 4">{{ '进行中' }}</span> -->
|
<!-- <span class="time_tex time_texs" v-if="item.status == 4">{{ '进行中' }}</span> -->
|
||||||
<span style="margin:0 20rpx;">{{ dateWeeks(item.start_time) }}</span>|
|
<span style="margin:0 20rpx;">{{ dateWeeks(item.start_time) }}</span><span style="width: 1rpx;height: 22rpx;background: #323232;"></span>
|
||||||
<span class="white-space" style="margin-left: 20rpx;width: 260rpx;">{{ item.address_detail }}</span>
|
<span class="white-space" style="margin-left: 20rpx;width: 260rpx;">{{ item.address_detail }}</span>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -358,6 +358,10 @@ export default {
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
this.bqList = res.data.list;
|
this.bqList = res.data.list;
|
||||||
|
//初始化默认标签
|
||||||
|
if (this.list.length < 3) {
|
||||||
|
this.list = [...this.list, ...res.data.list.slice(0,3)];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: res.msg,
|
title: res.msg,
|
||||||
@ -616,15 +620,7 @@ export default {
|
|||||||
margin-top: 10rpx;
|
margin-top: 10rpx;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 30rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
.u-search{
|
|
||||||
background: rgba($color: #FFFFFF, $alpha: 0.6);
|
|
||||||
::v-deep .u-search__content{
|
|
||||||
background: rgba($color: #FFFFFF, $alpha: 0.6);
|
|
||||||
}
|
|
||||||
::v-deep .u-search__content__input{
|
|
||||||
background: rgba($color: #FFFFFF, $alpha: 0.6);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.searchBtn{
|
.searchBtn{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
width: 133rpx;
|
width: 133rpx;
|
||||||
@ -740,7 +736,6 @@ export default {
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #323232 ;
|
color: #323232 ;
|
||||||
line-height: 30rpx;
|
|
||||||
|
|
||||||
.time_tex{
|
.time_tex{
|
||||||
width: 116rpx;
|
width: 116rpx;
|
||||||
@ -753,6 +748,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
line-height: 30rpx;
|
||||||
}
|
}
|
||||||
.time_texs{
|
.time_texs{
|
||||||
background: #FF4810;
|
background: #FF4810;
|
||||||
@ -991,3 +987,20 @@ export default {
|
|||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<style lang="scss">
|
||||||
|
.serch_top {
|
||||||
|
.u-search{
|
||||||
|
|
||||||
|
::v-deep .u-search__content{
|
||||||
|
background: rgba($color: #FFFFFF, $alpha: 0.6) !important;
|
||||||
|
}
|
||||||
|
::v-deep .u-search__content__input{
|
||||||
|
background-color: rgba($color: #FFFFFF, $alpha: 0.6) !important;
|
||||||
|
}
|
||||||
|
::v-deep .u-icon__img{
|
||||||
|
width: 36rpx !important;
|
||||||
|
height: 36rpx !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -13,7 +13,8 @@
|
|||||||
<span style="color: #909090; font-size: 24rpx;">带着热爱,在搭子圈里撒野~</span>
|
<span style="color: #909090; font-size: 24rpx;">带着热爱,在搭子圈里撒野~</span>
|
||||||
</view>
|
</view>
|
||||||
<image src="../../static/shezhi.png" mode=""
|
<image src="../../static/shezhi.png" mode=""
|
||||||
style="width: 50rpx; height: 50rpx;position: absolute;right: 0;" @click="clickTop(2)"></image>
|
style="width: 50rpx; height: 50rpx;position: absolute;right: 0;" @click="clickTop(2)">
|
||||||
|
</image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="hea-right flex flex-column align-items" @click="out()" v-if="token">
|
<!-- <view class="hea-right flex flex-column align-items" @click="out()" v-if="token">
|
||||||
@ -52,38 +53,54 @@
|
|||||||
</view>
|
</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
|
|
||||||
<view class="first service flex justify-center align-items"
|
<!-- 提现 -->
|
||||||
@click="callPhone(init.mobile)">
|
<!-- <view class="first mymoney flex flex-column" @click="callPhone(init.mobile)">
|
||||||
|
<view class="flex">
|
||||||
|
<view class="flex flex-column myyue">
|
||||||
|
<span style="font-size: 26rpx;">当前余额</span>
|
||||||
|
<view class="flex align-items" style="margin-top: 20rpx;">
|
||||||
|
<span style="font-size: 40rpx;margin-right: 20rpx;">00.00</span>
|
||||||
|
<image src="/static/my/qjt.png" mode="" style="width: 28rpx; height: 28rpx;"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image class="tixian" src="/static/my/tixian.png" mode=""></image>
|
||||||
|
<span class="tixianwz">提现</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex align-items botmoney">
|
||||||
|
<span>待入账 ¥6658.00</span>
|
||||||
|
<span class="shu"></span>
|
||||||
|
<span>累计收益 ¥6658.00</span>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
|
||||||
|
<!-- 成为主理人 -->
|
||||||
|
<!-- @click="callPhone(init.mobile)" -->
|
||||||
|
<view class="first service flex justify-center align-items" >
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<view class="flex justify-center align-items" style="margin-top: 50rpx;width: 100%;">
|
<view class="flex justify-center align-items" style="margin-top: 50rpx;width: 100%;">
|
||||||
<image src="/static/my/hotac.png" mode="" style="width: 327rpx; height: 38rpx;">
|
<image src="https://naweigetetest2.hschool.com.cn/dyqc/hotac.png" mode="" style="width: 327rpx; height: 38rpx;">
|
||||||
</image>
|
</image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 热门活动 -->
|
<!-- 热门活动 -->
|
||||||
<view class="hot flex flex-column">
|
<view class="hot flex flex-column">
|
||||||
<view class="content flex align-items flex-column">
|
<view class="content flex align-items flex-column">
|
||||||
<view
|
<view class="flex flex-column w-100 bbb" v-for="(item, index) in hotList" :key="index"
|
||||||
class="flex flex-column w-100 bbb"
|
@click="detail(item.id)">
|
||||||
v-for="(item, index) in hotList"
|
<view class="flex " style="margin-top: 30rpx">
|
||||||
:key="index"
|
<view class="right flex flex-column" style="align-items: self-start">
|
||||||
@click="detail(item.id)"
|
|
||||||
>
|
|
||||||
<view
|
|
||||||
class="flex "
|
|
||||||
style="margin-top: 30rpx"
|
|
||||||
>
|
|
||||||
<view
|
|
||||||
class="right flex flex-column"
|
|
||||||
style="align-items: self-start"
|
|
||||||
>
|
|
||||||
<span class="title white-space">{{ item.title }}</span>
|
<span class="title white-space">{{ item.title }}</span>
|
||||||
<span class="first-image flex align-items" style="margin-top: 20rpx;width: 100%;">
|
<span class="first-image flex align-items" style="margin-top: 20rpx;width: 100%;">
|
||||||
<image :src="item.user.avatar" style="width: 36rpx;height: 36rpx;"></image>
|
<image :src="item.user.avatar" style="width: 36rpx;height: 36rpx;"></image>
|
||||||
<span style="color: #9C9C9C;margin-left: 10rpx;">{{ item.user.nickname }}</span>
|
<span style="color: #9C9C9C;margin-left: 10rpx;">{{ item.user.nickname }}</span>
|
||||||
<view class="white-space" style="width: 60%;">
|
<view class="white-space" style="width: 60%;">
|
||||||
<span style="color:#0CA013;margin-left: 20rpx;" v-for="items_t in item.classes_cate">#{{ items_t }}</span>
|
<span style="color:#0CA013;margin-left: 20rpx;"
|
||||||
|
v-for="items_t in item.classes_cate">#{{ items_t }}</span>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
@ -91,36 +108,29 @@
|
|||||||
<view class="flex flex-column" style="margin-top: 20rpx;">
|
<view class="flex flex-column" style="margin-top: 20rpx;">
|
||||||
<view class="time flex align-items white-space">
|
<view class="time flex align-items white-space">
|
||||||
<span class="time_tex" v-if="item.status == 2">{{ '报名中' }}</span>
|
<span class="time_tex" v-if="item.status == 2">{{ '报名中' }}</span>
|
||||||
<span style="margin:0 20rpx;"
|
<span style="margin:0 20rpx;">{{ dateWeeks(item.start_time) }}</span>
|
||||||
>{{ dateWeeks(item.sign_start_time) }}
|
<span style="width: 1rpx;height: 22rpx;background: #323232;"></span>
|
||||||
</span>|<span class="white-space"
|
<span class="white-space"
|
||||||
style="margin-left: 20rpx;width: 260rpx;"
|
style="margin-left: 20rpx;width: 260rpx;">{{ item.address_detail
|
||||||
>{{ item.address_detail }}</span
|
}}</span>
|
||||||
>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="flex align-items" style="margin-top: 20rpx;">
|
<view class="flex align-items" style="margin-top: 20rpx;">
|
||||||
<image class="imgs_con" v-for="(items_img,index) in item.images.slice(0,3)" :key="index" :src="items_img"></image>
|
<image class="imgs_con" v-for="(items_img, index) in item.images.slice(0, 3)"
|
||||||
|
:key="index" :src="items_img"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom flex align-items">
|
<view class="bottom flex align-items">
|
||||||
<view class="flex align-items toptext">
|
<view class="flex align-items toptext">
|
||||||
<span class="flex align-items">
|
<span class="flex align-items">
|
||||||
<u-avatar-group
|
<u-avatar-group :urls="item.join_info.users" keyName="avatar" size="30"
|
||||||
:urls="item.join_info.users"
|
maxCount="5" gap="0.4"></u-avatar-group>
|
||||||
keyName="avatar"
|
<image :class="item.join_info.users.length > 0 ? '' : 'smalld'"
|
||||||
size="30"
|
|
||||||
maxCount="5"
|
|
||||||
gap="0.4"
|
|
||||||
></u-avatar-group>
|
|
||||||
<image
|
|
||||||
:class="item.join_info.users.length > 0 ? '' :'smalld'"
|
|
||||||
src="/static/index/dian.png"
|
src="/static/index/dian.png"
|
||||||
style="width: 60rpx;height: 60rpx;margin-left:-20rpx;z-index: 1;"
|
style="width: 60rpx;height: 60rpx;margin-left:-20rpx;z-index: 1;"></image>
|
||||||
></image>
|
|
||||||
</span>
|
</span>
|
||||||
<view class="number flex align-items">
|
<view class="number flex align-items">
|
||||||
{{ Number(item.join_info.people_number) + "人已上车" }}
|
{{ Number(item.join_info.people_number) + "人已上车" }}
|
||||||
@ -143,32 +153,21 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- 授权登录 -->
|
<!-- 授权登录 -->
|
||||||
<u-popup :show="showPopup" mode="center" round="20" :customStyle="{'width':'690rpx','height':'630rpx'}" :closeable="true"
|
<u-popup :show="showPopup" mode="center" round="20" :customStyle="{ 'width': '640rpx', 'height': '630rpx'}"
|
||||||
@close="close">
|
:closeable="true" @close="close">
|
||||||
<!-- 隐私协议 -->
|
<!-- 隐私协议 -->
|
||||||
<lsl-protocol-popup
|
<lsl-protocol-popup title="用户协议和隐私政策提示" predesc="感谢您使用洛阳青年夜校。为保护您的个人信息安全,在您洛阳青年夜校的服务前,请务必仔细阅读"
|
||||||
title="用户协议和隐私政策提示"
|
|
||||||
predesc="感谢您使用洛阳青年夜校。为保护您的个人信息安全,在您洛阳青年夜校的服务前,请务必仔细阅读"
|
|
||||||
subdesc='以了解详细内容。如您同意,请点击“同意并继续”并开始使用我们的服务。'
|
subdesc='以了解详细内容。如您同意,请点击“同意并继续”并开始使用我们的服务。'
|
||||||
top_img='https://xxx.xxx.com/images/home/zcts@2x.png'
|
top_img='https://naweigetetest2.hschool.com.cn/dyqc/dyqclogo.png'
|
||||||
color="#C9935C"
|
color="#C9935C" hideTabBar="true" :onNeed='false' @agree="getList" :other="other"
|
||||||
hideTabBar="true"
|
:title_style="'padding-top:60rpx;'" open_type='agreePrivacyAuthorization'>
|
||||||
:onNeed='false'
|
|
||||||
@agree="getList"
|
|
||||||
:other="other"
|
|
||||||
:title_style="'padding-top:60rpx;'"
|
|
||||||
open_type='agreePrivacyAuthorization'>
|
|
||||||
</lsl-protocol-popup>
|
</lsl-protocol-popup>
|
||||||
<view class="popup">
|
<view class="popup">
|
||||||
<img src="https://naweigetetest2.hschool.com.cn/dyqc/shou1.png" alt="" />
|
<img src="https://naweigetetest2.hschool.com.cn/dyqc/shou1.png" alt="" />
|
||||||
<text id="txt2">为您授权登陆,授权成功后可参加多种户外活动</text>
|
<text id="txt2">为您授权登陆,授权成功后可参加多种户外活动</text>
|
||||||
<button class="texbut" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
|
<button class="texbut" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
|
||||||
<u-icon
|
授权登录
|
||||||
label="授权登录"
|
<!-- <u-icon label="" labelColor="#fff" size="28" name="/static/wechat1.png"></u-icon> -->
|
||||||
labelColor="#fff"
|
|
||||||
size="28"
|
|
||||||
name="/static/wechat1.png"
|
|
||||||
></u-icon>
|
|
||||||
</button>
|
</button>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
@ -176,7 +175,7 @@
|
|||||||
<u-toast ref="uToast"></u-toast>
|
<u-toast ref="uToast"></u-toast>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<tab-bar :tabBarShow="3"></tab-bar>
|
<tab-bar :tabBarShow="tabBarShow"></tab-bar>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
@ -192,6 +191,7 @@
|
|||||||
...mapActions(['number']),
|
...mapActions(['number']),
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
tabBarShow:null,
|
||||||
topHeight: '',
|
topHeight: '',
|
||||||
hotList: [],
|
hotList: [],
|
||||||
showPopup: false,
|
showPopup: false,
|
||||||
@ -434,7 +434,7 @@
|
|||||||
.get("/api/school.new_activity/activity_list", {
|
.get("/api/school.new_activity/activity_list", {
|
||||||
params: {
|
params: {
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 3,
|
limit: 1,
|
||||||
order: "hot",
|
order: "hot",
|
||||||
status: "2", //5已结束
|
status: "2", //5已结束
|
||||||
auth_status: 1,
|
auth_status: 1,
|
||||||
@ -479,8 +479,14 @@
|
|||||||
getinit() {
|
getinit() {
|
||||||
uni.$u.http.get('/api/index/init', {}).then(res => {
|
uni.$u.http.get('/api/index/init', {}).then(res => {
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
this.init = res.data.customer_service
|
this.init = res.data.customer_service;
|
||||||
|
if( res.data.base_info.miniapp_activity_swtich == 1){
|
||||||
|
this.tabBarShow = 3;
|
||||||
|
}else{
|
||||||
|
this.tabBarShow = 2;
|
||||||
|
}
|
||||||
uni.setStorageSync('init', res.data.customer_service)
|
uni.setStorageSync('init', res.data.customer_service)
|
||||||
|
uni.setStorageSync('init_info', res.data.activity_info)
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: res.msg,
|
title: res.msg,
|
||||||
@ -545,7 +551,7 @@
|
|||||||
// this.showPopup = true
|
// this.showPopup = true
|
||||||
// } else {
|
// } else {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/packageA/my/exercise",
|
url: "/packageA/my/exercise?status=-3,0,2,3,4,5,6,7,9",
|
||||||
})
|
})
|
||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
@ -990,6 +996,7 @@
|
|||||||
.hea-left {
|
.hea-left {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.avatar {
|
.avatar {
|
||||||
width: 140rpx;
|
width: 140rpx;
|
||||||
height: 140rpx;
|
height: 140rpx;
|
||||||
@ -1039,19 +1046,23 @@
|
|||||||
.top_box {
|
.top_box {
|
||||||
width: 690rpx;
|
width: 690rpx;
|
||||||
margin-top: 32rpx;
|
margin-top: 32rpx;
|
||||||
|
|
||||||
view {
|
view {
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 18rpx;
|
border-radius: 18rpx;
|
||||||
width: 330rpx;
|
width: 330rpx;
|
||||||
padding: 20rpx 0;
|
padding: 20rpx 0;
|
||||||
|
|
||||||
image {
|
image {
|
||||||
width: 70rpx;
|
width: 70rpx;
|
||||||
height: 70rpx;
|
height: 70rpx;
|
||||||
margin-left: 30rpx;
|
margin-left: 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
margin-left: 20rpx;
|
margin-left: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p1 {
|
.p1 {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-family: PingFang SC, PingFang SC;
|
font-family: PingFang SC, PingFang SC;
|
||||||
@ -1059,6 +1070,7 @@
|
|||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #323232;
|
color: #323232;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p2 {
|
.p2 {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 10rpx;
|
margin-top: 10rpx;
|
||||||
@ -1068,6 +1080,7 @@
|
|||||||
color: #9C9C9C;
|
color: #9C9C9C;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.top_box_right {
|
.top_box_right {
|
||||||
margin-left: 30rpx;
|
margin-left: 30rpx;
|
||||||
}
|
}
|
||||||
@ -1113,23 +1126,23 @@
|
|||||||
|
|
||||||
img {
|
img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: -40rpx;
|
left: -30rpx;
|
||||||
width: 750rpx;
|
width: 690rpx;
|
||||||
height: 1140rpx;
|
height: 1130rpx;
|
||||||
top: -460rpx;
|
top: -460rpx;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#txt2 {
|
#txt2 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 340rpx;
|
margin-top: 280rpx;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #525252;
|
color: #525252;
|
||||||
margin-bottom: 90rpx;
|
margin-bottom: 90rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.texbut {
|
.texbut {
|
||||||
width: 317rpx;
|
width: 317rpx;
|
||||||
height: 90rpx;
|
height: 90rpx;
|
||||||
@ -1188,6 +1201,50 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.mymoney {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
width: 690rpx;
|
||||||
|
height: 206rpx;
|
||||||
|
background: #323232;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
position: relative;
|
||||||
|
align-items: flex-start;
|
||||||
|
.myyue{
|
||||||
|
margin-top: 40rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
.tixian{
|
||||||
|
width: 148rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: -10rpx;
|
||||||
|
top: 45rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.tixianwz{
|
||||||
|
position: absolute;
|
||||||
|
right: 35rpx;
|
||||||
|
top: 62rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #323232;
|
||||||
|
}
|
||||||
|
.botmoney{
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
color: #777777;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
.shu{
|
||||||
|
width: 2rpx;
|
||||||
|
height: 22rpx;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
background: #848484;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.service {
|
.service {
|
||||||
margin-top: 30rpx;
|
margin-top: 30rpx;
|
||||||
height: 206rpx;
|
height: 206rpx;
|
||||||
@ -1195,6 +1252,7 @@
|
|||||||
background-size: 690rpx 206rpx;
|
background-size: 690rpx 206rpx;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot {
|
.hot {
|
||||||
// margin-top: 30rpx;
|
// margin-top: 30rpx;
|
||||||
margin-bottom: 100rpx;
|
margin-bottom: 100rpx;
|
||||||
@ -1213,6 +1271,7 @@
|
|||||||
font-size: 42rpx;
|
font-size: 42rpx;
|
||||||
color: #BBFC5B;
|
color: #BBFC5B;
|
||||||
}
|
}
|
||||||
|
|
||||||
.part1 {
|
.part1 {
|
||||||
width: 162rpx;
|
width: 162rpx;
|
||||||
height: 70rpx;
|
height: 70rpx;
|
||||||
@ -1224,6 +1283,7 @@
|
|||||||
font-size: 42rpx;
|
font-size: 42rpx;
|
||||||
color: #9C9C9C;
|
color: #9C9C9C;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
// height: 462rpx;
|
// height: 462rpx;
|
||||||
// overflow-x: auto;
|
// overflow-x: auto;
|
||||||
@ -1249,6 +1309,7 @@
|
|||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #323232;
|
color: #323232;
|
||||||
}
|
}
|
||||||
|
|
||||||
.first-image {
|
.first-image {
|
||||||
font-family: PingFang SC, PingFang SC;
|
font-family: PingFang SC, PingFang SC;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
@ -1262,6 +1323,7 @@
|
|||||||
color: #222222;
|
color: #222222;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
margin: 10rpx 0 26rpx 0;
|
margin: 10rpx 0 26rpx 0;
|
||||||
|
|
||||||
@ -1328,19 +1390,23 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time_texs {
|
.time_texs {
|
||||||
background: #FF4810;
|
background: #FF4810;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.imgs_con {
|
.imgs_con {
|
||||||
width: 202rpx;
|
width: 202rpx;
|
||||||
height: 202rpx;
|
height: 202rpx;
|
||||||
margin-right: 12rpx;
|
margin-right: 12rpx;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-radius: 18rpx 0 0 18rpx;
|
border-radius: 18rpx 0 0 18rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3) {
|
&:nth-child(3) {
|
||||||
border-radius: 0 18rpx 18rpx 0;
|
border-radius: 0 18rpx 18rpx 0;
|
||||||
}
|
}
|
||||||
@ -1351,12 +1417,15 @@
|
|||||||
.bottom {
|
.bottom {
|
||||||
margin: 32rpx 0 32rpx 24rpx;
|
margin: 32rpx 0 32rpx 24rpx;
|
||||||
width: 655rpx;
|
width: 655rpx;
|
||||||
|
|
||||||
.toptext {
|
.toptext {
|
||||||
width: 480rpx;
|
width: 480rpx;
|
||||||
|
|
||||||
.smalld {
|
.smalld {
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.number {
|
.number {
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
BIN
static/detail/left.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
static/detail/right.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
static/index/xiaoxilogo.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
static/index/xitongxiaoxi.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
static/my/qjt.png
Normal file
After Width: | Height: | Size: 448 B |
BIN
static/my/tixian.png
Normal file
After Width: | Height: | Size: 2.2 KiB |