1.修改首页下滑UI

2.修改我的下滑UI
3.新增发布页面弹窗倒计时
4.优化发布页面,免责声明弹窗确认与单选框联动问题
5.修复系统消息重复显示问题
6.下单页面新增退款政策渲染
7.售后订单详情新增退款政策渲染
8.首页新增下拉刷新接口
9.我发布的活动新增下拉刷新接口
10.我参与的新增下拉刷新接口
This commit is contained in:
王创世 2025-06-10 18:28:03 +08:00
parent d611b933dd
commit 77e675c5d2
13 changed files with 2212 additions and 1975 deletions

View File

@ -39,7 +39,7 @@
</span>
<span class="line"></span>
<span class="flex align-items" style="width: 100%;justify-content: space-between;">
<view class="tt1">选择退款数量<span> (剩余{{detailAny.verification.total_number - detailAny.verification.have_number}})</span></view>
<view class="tt1">选择退款数量<span> (已核销{{detailAny.verification.have_number}})</span></view>
<span class="flex align-items">
<image style="width: 42rpx;height: 42rpx;" src="/static/detail/jian.png" @click="removeMon"></image>
<span style="margin: 0 20rpx;">{{ nummoney }}</span>
@ -74,9 +74,9 @@
<view class="footer flex align-items" style="justify-content: space-between;">
<view @click="subumit()" class="footer flex align-items" style="justify-content: space-between;">
<view class="footer-right flex justify-center align-items">
<span @click="subumit()">确定</span>
<span >确定</span>
</view>
</view>
@ -305,7 +305,8 @@
this.detail = res.data.detail.detail;
this.detailAny = res.data.detail;
this.order_no = res.data.detail.order_no;
this.priceGem = res.data.detail.payprice;
this.priceGem = res.data.detail.detail.price;
console.log(res.data.detail);
this.activityInfo = uni.getStorageSync('init_info')
} else {
uni.showToast({
@ -393,7 +394,7 @@
<style lang="scss" scoped>
.detail_all{
background-color: #f7f7f7;
// height: 100vh;
min-height: 100vh;
}
.w-100 {
width: 100%;

File diff suppressed because it is too large Load Diff

View File

@ -162,7 +162,7 @@
</view>
<u-popup @touchmove.native.stop.prevent :custom-style="{
width: '690rpx',
height: '450rpx',
height: 'auto',
margin: '0 auto',
display: 'flex',
justifyContent: 'flex-start',
@ -170,26 +170,29 @@
}" :closeable="false" :show="tipsShow" :round="10" mode="center" :closeOnClickOverlay="false">
<view style="font-size: 32rpx;font-weight: 400;margin: 20rpx 0 24rpx 0;">退款政策</view>
<view class="third-center" style="padding: 30rpx;">
<view v-html="detail.refund_info.desc"></view>
<!-- <uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th width="160" align="left">申请退款时间</uni-th>
<uni-th width="70" align="left">退款比例</uni-th>
<uni-th width="70" align="left">退款金额</uni-th>
</uni-tr>
<uni-tr v-if="detail.refund_info.status == 1">
<uni-td>报名开始后</uni-td>
<uni-td>0%</uni-td>
<uni-td>0</uni-td>
</uni-tr>
<uni-tr v-if="detail.refund_info.status == 5">
<uni-td>报名开始至{{ fomartertime }}</uni-td>
<uni-td>需协商</uni-td>
<uni-td>需协商</uni-td>
</uni-tr>
</uni-table> -->
<view class="refund-policy-table">
<view class="table-container">
<!-- 表头 -->
<view class="table-header">
<view class="th-item">申请退款时间</view>
<view class="th-item">退款比例</view>
<view class="th-item">退款金额</view>
</view>
<!-- 表格内容 -->
<view class="table-body">
<!-- 随时退 -->
<view class="table-row" v-for="(item,index) in detail.refund_desc" :key="index">
<view class="td-item">{{item.refund_time}}</view>
<view class="td-item">{{item.refund_scale}}</view>
<view class="td-item">{{item.refund_price}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="popup-footer">
<view class="popup-footer" style="margin-top:30rpx;">
<view class="zhixiao shows_zhidao" @click="tipsShow = false">我已知晓</view>
</view>
</u-popup>
@ -212,7 +215,7 @@
<view class="footer flex align-items" style="justify-content: space-between;">
<span style="margin-bottom: 170rpx; width: 750rpx;margin-left: 20rpx;">
<cc-protocolBox :agree="agree" :protocolArr="protocolArr" @click="agree = true"
<cc-protocolBox :agree="agree" :protocolArr="protocolArr"
@protocolClick="protocolClick"></cc-protocolBox>
</span>
<view class="footer-right flex justify-center align-items">
@ -276,7 +279,7 @@
<!-- 声明 -->
<u-popup @touchmove.native.stop.prevent :closeable="true" :show="show" :round="10" mode="center"
<u-popup @touchmove.native.stop.prevent :closeOnClickOverlay="false" :closeable="true" :show="show" :round="10" mode="center"
@close="close" @open="open" :custom-style="popupStylezf">
<span style="font-size: 42rpx;font-weight: 800;margin: 12rpx 0 24rpx 0;height: 120rpx;">免责声明</span>
<scroll-view ref="scrollView" :scroll-top="scrollTop" :show-scrollbar='true'
@ -286,7 +289,7 @@
</view>
</scroll-view>
<view class="popup-footer">
<span class="zhixiao" v-if="agreeShow == false">我同意</span>
<span class="zhixiao" v-if="agreeShow == false">我同意 {{timeLog}}</span>
<span class="zhixiao shows_zhidao" v-if="agreeShow == true" @click="change">我同意</span>
</view>
</u-popup>
@ -341,6 +344,8 @@ export default {
data() {
return {
timer:null,
timeLog:0,
showYes: true,
order_no: {},
qunShow: false,
@ -564,6 +569,15 @@ export default {
this.agreeShow = true
},
protocolClick(tag) {
//timeLog
this.timeLog = 5;
this.timer = setInterval(() => {
this.timeLog--;
if (this.timeLog === 0) {
this.agreeShow=true;
clearInterval(this.timer);
}
}, 1000);
this.show = true
},
loginShow() {
@ -685,7 +699,8 @@ export default {
close() {
this.type = 0
this.selectedTime = null
this.show = false
this.show = false;
clearInterval(this.timer);
},
buyClose() {
this.type = 0
@ -1461,8 +1476,6 @@ export default {
justify-content: center;
align-items: center;
// margin: 30rpx 0;
height: 146rpx;
.zhixiao {
height: 80rpx;
background: #E8E8E8;
@ -1727,4 +1740,71 @@ export default {
.no {
background: linear-gradient(180deg, #FFF1D6 0%, #FFFFFF 30%);
}
.refund-policy-table {
width: 100%;
.table-container {
width: 100%;
border: 1px solid #C1C1C1;
border-radius: 20rpx;
overflow: hidden;
}
.table-header {
display: flex;
background-color: #E8E8E8;
.th-item {
flex: 1;
text-align: center;
font-size: 26rpx;
color: #323232;
padding: 24rpx 10rpx;
border-right: 1px solid #C1C1C1;
border-bottom: 1px solid #C1C1C1;
&:first-child {
flex: 2;
/* 第一列宽度为其他列的2倍 */
}
&:last-child {
border-right: none;
}
}
}
.table-body {
.table-row {
display: flex;
border-top: 1px solid #C1C1C1;
&:first-child {
border-top: none;
}
.td-item {
flex: 1;
text-align: center;
font-size: 26rpx;
color: #323232;
padding: 24rpx 10rpx;
border-right: 1px solid #C1C1C1;
background-color: #F7F7F7;
&:first-child {
flex: 2;
/* 第一列宽度为其他列的2倍 */
}
&:last-child {
border-right: none;
}
}
}
}
}
</style>

View File

@ -1175,6 +1175,7 @@ export default {
width: 202rpx;
height: 202rpx;
margin-right: 20rpx;
object-fit: cover;
&:first-child {
border-radius: 18rpx 0 0 18rpx;

View File

@ -95,14 +95,14 @@
<!-- v-if="detailAny.feel == 0" -->
<view class="footer flex align-items flex-column" style="justify-content: space-between;" >
<view class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 0 && detailAny.status==9">
<text @click="service(detailAny.id)"> 申请售后 </text>
<view @click="service(detailAny.id)" class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 0 && detailAny.status==9">
<text > 申请售后 </text>
</view>
<view class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 0 && detailAny.status==2">
<text @click="paidcancel(detailAny.id)"> 取消订单 </text>
<view @click="paidcancel(detailAny.id)" class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 0 && detailAny.status==2">
<text > 取消订单 </text>
</view>
<view class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 1">
<text @click="cancelOrder(detailAny.id)"> 取消订单 </text>
<view @click="cancelOrder(detailAny.id)" class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 1&& detailAny.status==2">
<text > 取消订单 </text>
</view>
</view>

View File

@ -54,23 +54,23 @@
<span>订单状态</span>
<span>{{ toptitle }}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" >
<view class="flex w-100 space-between hui align-items" style="margin-top: 30rpx;" >
<span>订单编号</span>
<span>{{detailAny.order_no}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" >
<view class="flex w-100 space-between hui align-items" style="margin-top: 30rpx;" >
<span>创建时间</span>
<span>{{ formattime(detailAny.createtime)}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" >
<view class="flex w-100 space-between hui align-items" style="margin-top: 30rpx;" >
<span>付款金额</span>
<span style="color: #FF4810;">{{detailAny.totalprice}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" >
<view class="flex w-100 space-between hui align-items" style="margin-top: 30rpx;" >
<span>付款方式</span>
<span>{{detailAny.pay_type == 'wechat' ? '微信支付' : '余额'}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" >
<view class="flex w-100 space-between hui align-items" style="margin-top: 30rpx;" >
<span>付款时间</span>
<span>{{ formattime(detailAny.paytime)}}</span>
</view>
@ -79,9 +79,8 @@
<view class="footer flex align-items flex-column" style="justify-content: space-between;">
<view class="footer-right flex justify-center align-items" v-if="status == 9">
<span @click="service(detailAny.id)"> 申请售后 </span>
<view @click="service(detailAny.id)" class="footer-right flex justify-center align-items" v-if="status == 9">
<span > 申请售后 </span>
</view>
</view>

View File

@ -22,7 +22,8 @@
"path": "pages/fenl/index",
"style": {
"navigationBarTitleText": "分类",
"navigationStyle": "custom" //
"navigationStyle": "custom", //
"enablePullDownRefresh": true
}
},
{

View File

@ -19,7 +19,7 @@
</view>
</view>
<span class="lines"></span>
<view class="center flex flex-column">
<scroll-view @touchmove.prevent scroll-y="true" 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">
@ -41,7 +41,7 @@
<u-badge :isDot="true" type="success"></u-badge>
</span> -->
</view>
</view>
</scroll-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;">
@ -263,6 +263,9 @@
background-image: url("https://naweigetetest2.hschool.com.cn/dyqc/bgx2.png");
background-size: 100%;
background-repeat: no-repeat;
position: fixed;
height: 100vh;
width: 100%;
}
.w-100 {

View File

@ -1,8 +1,8 @@
<template>
<view class="box flex justify-center flex-column">
<view class="nav">
<u-navbar :is-back="true" :autoBack='true' leftIconColor="#323232" bgColor="#FFFFFF">
<view
<u-navbar :is-back="true" :autoBack="true" leftIconColor="#323232" bgColor="#FFFFFF">
<!-- <view
class="u-nav-slot"
slot="left"
>
@ -10,7 +10,7 @@
name="arrow-left"
size="22"
></u-icon>
</view>
</view> -->
<view
class="nav_txt"
slot="center"
@ -129,6 +129,8 @@
icon: 'none',
duration: 2000
});
this.list=[];
this.page=1;
this.getDetail();
} else {
uni.showToast({
@ -153,7 +155,7 @@
.box {
background: #F1F2F8;
width: 750rpx;
height: 100%;
min-height: 100vh;
margin: 0 auto;
.nav_txt{

View File

@ -6,7 +6,7 @@
<image src="/static/fabu/fabuhd.png" style="width: 237rpx; height: 57rpx"></image>
</view>
<scroll-view scroll-y="true" :show-scrollbar="true" class="box flex flex-column align-items">
<scroll-view @touchmove.prevent scroll-y="true" :show-scrollbar="true" class="scroll-container box flex flex-column align-items">
<view class="first flex flex-column align-items justify-start">
<view class="row flex align-items" style="margin-top: 25rpx;">
<span>
@ -154,13 +154,13 @@
</view>
<view style="margin:30rpx 0 0 0;" v-if="status == -1 || status == 2">
<cc-protocolBox :agree="agree" :protocolArr="protocolArr" @click="agree = false"
<cc-protocolBox :agree="agree" :protocolArr="protocolArr"
@protocolClick="protocolClick"></cc-protocolBox>
</view>
</scroll-view>
<view class="bottom flex align-items justify-center" v-if="status == -1 || status == 2">
<span class="flex align-items justify-center" @click="apply()" v-if="agree == true">确认发布</span>
<span class="flex align-items justify-center" v-if="agree == false"
<span class="flex align-items justify-center" @click="apply()" v-if="agreeAdd == true">确认发布</span>
<span class="flex align-items justify-center" v-if="agreeAdd == false"
style="background: #EEEEEE;color: #9C9C9C;">确认发布</span>
</view>
@ -200,7 +200,7 @@
</view>
</scroll-view>
<view class="popup-footer">
<span class="zhixiao" v-if="agreeShow == false">我同意</span>
<span class="zhixiao" v-if="agreeShow == false">我同意 {{timeLog}}</span>
<span class="zhixiao shows_zhidao" v-if="agreeShow == true" @click="change">我同意</span>
</view>
</u-popup>
@ -276,6 +276,9 @@
export default {
data() {
return {
agreeAdd:false,
timer:null,
timeLog:0,
showPopbq: false, //
bqList: [], //
cate_id: '', //id
@ -594,16 +597,17 @@
this.birthShow1 = false
},
close() {
this.show = false
this.show = false;
clearInterval(this.timer);
},
closetuikuan() {
this.tuikuan = false
},
open() {
this.show = true
setTimeout(() => {
this.agree = true
}, 5000)
// setTimeout(() => {
// this.agree = true
// }, 5000)
},
opentuikuan() {
this.tuikuan = true;
@ -611,13 +615,22 @@
this.form.refund_idn = '随时退';
},
change() {
this.agree = true
this.agree = true;
this.agreeAdd=true;
this.show = false
},
//
protocolClick(tag) {
console.log(tag)
//timeLog
this.timeLog = 5;
this.timer = setInterval(() => {
this.timeLog--;
if (this.timeLog === 0) {
this.agreeShow=true;
clearInterval(this.timer);
}
}, 1000);
this.show = true
},
//
@ -1024,9 +1037,23 @@
</script>
<style lang="scss" scoped>
// .allbg{
// }
.allbg{
position: fixed;
height: 100%;
width: 100%;
}
/* 添加新样式用于内部可滚动区域 */
.scroll-container {
margin: 0 auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1; /* 确保在.allbg之上 */
overflow: visible; /* 允许内容溢出 */
margin-top: 200rpx;
}
.title_logo {
width: 690rpx;
margin-top: 110rpx;
@ -1034,6 +1061,7 @@
}
.backImg {
height: 100vh;
// background: linear-gradient(to bottom, #F1F2F8 0%, #F1F2F8 50%, #FFFFFF 100%);
width: 750rpx;
background-color: #f7f7f7;
@ -1076,10 +1104,7 @@
.box {
width: 690rpx;
margin-top: 40rpx;
height: 1100rpx;
margin-bottom: 320rpx;
height: 1111rpx;
.title {
font-family: PingFang SC, PingFang SC;
font-weight: 500;

View File

@ -66,7 +66,7 @@
style="margin-top: 20rpx;margin-bottom: 32rpx;">
<view class="imgs_con_div" v-for="(items_img, index) in item.images.slice(0, 3)"
:key="index">
<image class="imgs_con" mode="widthFix" :src="items_img"></image>
<image class="imgs_con" :src="items_img"></image>
</view>
</view>
</view>
@ -182,6 +182,17 @@
// return this.items.slice(0, 3);
// }
},
onPullDownRefresh() {
uni.showLoading({
title: '加载中...'
});
this.resetLists();
this.getHotList();
setTimeout(() => {
uni.hideLoading();
uni.stopPullDownRefresh();
}, 2000)
},
methods: {
dateWeeks(e) {
return dateWeek(e);
@ -746,6 +757,7 @@
.imgs_con {
width: 100%;
height: 100%;
object-fit: cover;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
<template>
<view class="myBox">
<view class="box flex justify-start align-items flex-column">
<view class="con-center flex flex-start flex-column">
<scroll-view @touchmove.prevent scroll-y="true" :show-scrollbar="true" class="con-center flex flex-start flex-column">
<view class="header flex align-items">
<view class="hea-left flex align-items">
<image :src="avatar" mode="" class="avatar" @click="clickTop(1)"></image>
@ -136,10 +136,9 @@
</view>
</view>
</view>
</view>
<view style="height: 80rpx;width: 100%;"></view>
</scroll-view>
<!-- 授权登录 -->
@ -868,6 +867,8 @@ export default {
<style lang="scss" scoped>
.myBox {
position: fixed;
padding-top: 200rpx;
width: 750rpx;
min-height: 100vh;
background-color: #F1F2F8;
@ -879,8 +880,6 @@ export default {
.box {
border-radius: 8rpx 8rpx 8rpx 8rpx;
// padding-top: env(safe-area-inset-top);
padding-top: 200rpx;
/* 顶部安全距离 */
.backImg {
position: fixed;
@ -922,12 +921,11 @@ export default {
.con-center {
margin-bottom: 100rpx;
height: 1314rpx;
.header {
width: 690rpx;
justify-content: space-between;
margin: 0 auto;
.hea-left {
width: 100%;
position: relative;
@ -980,8 +978,8 @@ export default {
.top_box {
width: 690rpx;
margin:0 auto;
margin-top: 32rpx;
view {
background: #FFFFFF;
border-radius: 18rpx;
@ -1138,13 +1136,15 @@ export default {
}
}
.mymoney {
margin-top: 30rpx;
width: 690rpx;
height: 200rpx;
background: #323232;
border-radius: 24rpx;
position: relative;
align-items: flex-start;
margin: 0 auto;
margin-top: 30rpx;
.myyue{
margin-top: 30rpx;
margin-left: 30rpx;
@ -1182,6 +1182,7 @@ export default {
}
.service {
margin: 0 auto;
margin-top: 30rpx;
height: 206rpx;
background: url("https://naweigetetest2.hschool.com.cn/dyqc/zhuliren.png");
@ -1227,7 +1228,7 @@ export default {
// white-space: nowrap;
width: 690rpx;
margin: 0 auto;
.bbb {
background: #ffffff;
margin-top: 24rpx;