2.修复已知问题

3.我发布的活动增加售后订单
4.增加售后订单详情
5.增加拒绝和同意退款单
This commit is contained in:
王创世 2025-06-09 18:28:36 +08:00
parent dc69c5e7bb
commit d611b933dd
19 changed files with 4146 additions and 3459 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="detail_all"> <view class="detail_all">
<view class="nav" @click="goHome"> <view class="nav">
<u-navbar :is-back="true" leftIconColor="#FFFFFF" :autoBack="true" :bgColor="background" <u-navbar :is-back="true" leftIconColor="#FFFFFF" :autoBack="true" :bgColor="background"
:titleStyle='titleStyle'> </u-navbar> :titleStyle='titleStyle'> </u-navbar>
</view> </view>
@ -35,7 +35,7 @@
<image :src="detail.user.avatar" mode="" <image :src="detail.user.avatar" mode=""
style="width: 36rpx;height: 36rpx;margin-right: 12rpx;border-radius: 80rpx;"> style="width: 36rpx;height: 36rpx;margin-right: 12rpx;border-radius: 80rpx;">
</image> </image>
<span style="color: #9C9C9C ;width: 32%;">{{ detail.user.nickname }}</span> <span style="color: #9C9C9C ;width: auto;">{{ detail.user.nickname }}</span>
<span class="flex justify-center align-items xieyi"> <span class="flex justify-center align-items xieyi">
<image src="/static/detail/baohu.png" mode="" <image src="/static/detail/baohu.png" mode=""
style="width: 28rpx;height: 28rpx;margin-right: 0;"></image> style="width: 28rpx;height: 28rpx;margin-right: 0;"></image>
@ -95,7 +95,7 @@
</view> </view>
</view> </view>
<view style="display: flex;align-items: center;"> <view style="display: flex;align-items: center;">
<view class="ck-qrcode" @click="openImg(detail.image)"> <view class="ck-qrcode" @click="qunShow = true">
查看 查看
</view> </view>
</view> </view>
@ -284,6 +284,25 @@
</view> </view>
</view> </view>
<u-popup @touchmove.native.stop.prevent :closeable="false" :show="qunShow" :round="10" mode="bottom">
<view style="text-align: center;font-size: 32rpx;color: #3D3D3D;padding: 30rpx;font-weight: 600;">活动二维码
</view>
<view style="text-align: center;">
<image :show-menu-by-longpress="true" :src="detail.image"
style="width: 400rpx;border: 1rpx solid #D5FD99;" mode="widthFix"></image>
</view>
<view style="padding: 0rpx 40rpx;">
<view
style="font-size: 28rpx;font-weight: 300;color: #9C9C9C;text-align: center;margin-top: 20rpx;">
长按识别二维码进群</view>
<view style="font-size: 28rpx;color: #3D3D3D;text-align: center;margin-top: 30rpx;">
如果无法加入或者开启了群验证可能是成员已满您即将加入由用户自发组织的户外活动请知悉</view>
<view style="font-size: 28rpx;color: #0CA013;text-align: center;margin-top: 30rpx;">
确认您已知晓用户协议的用户义务与责任平台不对活动真实性作担保请入群自行辨别</view>
</view>
<view @click="qunShow = false"
class="btn_1">我已知晓</view>
</u-popup>
</view> </view>
</template> </template>
@ -323,6 +342,7 @@
data() { data() {
return { return {
qunShow:false,
height_sw: '580rpx', height_sw: '580rpx',
style: { style: {
// //
@ -466,6 +486,7 @@
// }, // },
// //
goHome() { goHome() {
console.log(1);
if (getCurrentPages().length > 1) { if (getCurrentPages().length > 1) {
uni.navigateBack() uni.navigateBack()
} else { } else {
@ -1739,7 +1760,7 @@
</style> </style>
<style lang="scss"> <style lang="scss">
.value_slide { .value_slide {
width: 50%; width: 40%;
::v-deep .uni-slider-handle-wrapper { ::v-deep .uni-slider-handle-wrapper {
height: 10rpx; height: 10rpx;
@ -1802,4 +1823,18 @@
line-height: 70rpx; line-height: 70rpx;
text-align: center; text-align: center;
} }
.btn_1 {
width: 95%;
height: 90rpx;
background: #323232;
border-radius: 198rpx 198rpx 198rpx 198rpx;
font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
font-weight: 400;
font-size: 32rpx;
color: #BBFC5B;
line-height: 90rpx;
text-align: center;
margin: 0 auto;
margin-top: 30rpx;
}
</style> </style>

View File

@ -3,58 +3,61 @@
<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 class="s-header flex flex-column" v-for="(item,index) in headers" :key="index" <span class="s-header flex flex-column" v-for="(item, index) in headers" :key="index"
:class="{ selected: headerSelected(item.status) }" :class="{ selected: headerSelected(item.status) }" @click="selectheader(item.status)">
@click="selectheader(item.status)"> {{ item.text }}
{{item.text}}
<span class="lines" :class="{ selected: headerSelected(item.status) }"></span> <span class="lines" :class="{ selected: headerSelected(item.status) }"></span>
</span> </span>
</view> </view>
<view style="min-height: 100vh;margin-top: 80rpx;"> <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;">
<span class="text_h">活动时间 {{dateWeeks(item.detail.start_time) +' - '+dateWeekends(item.detail.end_time)}}</span> <span class="text_h">活动时间
</view> {{ dateWeeks(item.detail.start_time) + '-'+dateWeekends(item.detail.end_time)}}</span>
<span class="line"></span> </view>
<view style="margin:0 30rpx;" class="flex"> <span class="line"></span>
<image class="tut" :src="item.detail.images[0]"></image> <view style="margin:0 30rpx;" class="flex" @click="toInfo(item.activity_id)">
<view style="margin-left: 20rpx;width: 80%;"> <image class="tut" :src="item.detail.images[0]"></image>
<view style="margin-left: 20rpx;width: 80%;">
<view>
<span>{{ item.detail.title }}</span>
</view>
<view style="margin-top: 40rpx;" class="flex flex-between align-items">
<span style="font-size: 32rpx;">{{ item.totalprice }}</span>
<span style="font-size: 26rpx;color: #9C9C9C;">购买数量{{ item.num }}</span>
</view>
</view>
</view>
<span class="line"></span>
<view class="flex foot_btn align-items space-between">
<view> <view>
<span>{{ item.detail.title }}</span> <span v-if="item.status == 9">已完成</span>
<span v-if="item.status == 0" style="color: #FF4810;display: flex;align-items: center;">
支付倒计时<u-count-down :time="item.cancel_last_seconds * 1000"></u-count-down>
</span>
<span v-if="item.status == 2 || item.status == 3">待核销</span>
<span v-if="item.status == -3" style="color: #9C9C9C;">已关闭</span>
<span v-if="item.status == 4 || item.status == 7" style="color: #FF4810;">售后中</span>
<span v-if="item.status == 5" style="color: #FF4810;">退款中</span>
<span v-if="item.status == 6" style="color: #FF4810;">已退款</span>
</view> </view>
<view style="margin-top: 40rpx;" class="flex flex-between align-items">
<span style="font-size: 32rpx;">{{item.totalprice}}</span> <view class="flex align-items" style="justify-content: flex-end;">
<span style="font-size: 26rpx;color: #9C9C9C;">购买数量{{ item.num }}</span> <view v-if="item.status == 0 && item.cancel_last_seconds > 0" class="btn_xq"
@click="toPay(item.id, item.order_no)">去支付</view>
<view v-if="item.status == 2 || item.status == 3" class="btnhx"
@click="toDetail(item.id, item.order_no, item.status)">核销码</view>
<view v-if="item.status != 0" class="btn_xq"
@click="toDetail(item.id, item.order_no, item.status)">查看详情</view>
</view> </view>
</view> </view>
</view> </view>
<span class="line"></span>
<view class="flex foot_btn align-items space-between">
<view>
<span v-if="item.status == 9">已完成</span>
<span v-if="item.status == 0" style="color: #FF4810;display: flex;align-items: center;">
支付倒计时<u-count-down :time="item.cancel_last_seconds*1000"></u-count-down>
</span>
<span v-if="item.status == 2 || item.status == 3">待核销</span>
<span v-if="item.status == -3" style="color: #9C9C9C;">已关闭</span>
<span v-if="item.status == 4 || item.status == 7" style="color: #FF4810;">售后中</span>
<span v-if="item.status == 5" style="color: #FF4810;">退款中</span>
<span v-if="item.status == 6" style="color: #FF4810;">已退款</span>
</view>
<view class="flex align-items" style="justify-content: flex-end;"> <view class="flex justify-center align-items" v-if="list.length == 0" style="margin-top: 150rpx;">
<view v-if="item.status == 0 && item.cancel_last_seconds > 0" class="btn_xq" @click="toPay(item.id,item.order_no)">去支付</view> <span class="no-data">暂无数据</span>
<view v-if="item.status == 2 || item.status == 3" class="btnhx" @click="toDetail(item.id,item.order_no,item.status)">核销码</view>
<view v-if="item.status != 0" class="btn_xq" @click="toDetail(item.id,item.order_no,item.status)">查看详情</view>
</view>
</view> </view>
</view>
<view class="flex justify-center align-items" v-if="list.length == 0" style="margin-top: 150rpx;">
<span class="no-data">暂无数据</span>
</view>
</view> </view>
@ -155,7 +158,10 @@
</template> </template>
<script> <script>
import { dateWeek , dateWeekend } from "../../utils/dateFormat"; import {
dateWeek,
dateWeekend
} from "../../utils/dateFormat";
export default { export default {
data() { data() {
return { return {
@ -177,8 +183,7 @@
}], }],
size: 13, size: 13,
sortStyle: ['#ff557f', '#3f3f3f'], sortStyle: ['#ff557f', '#3f3f3f'],
headers: [ headers: [{
{
status: '-3,0,2,3,4,5,6,7,9', status: '-3,0,2,3,4,5,6,7,9',
text: '全部' text: '全部'
}, },
@ -211,7 +216,7 @@
list: [], list: [],
show: false, show: false,
qrcode: '', qrcode: '',
count:0 count: 0
}; };
}, },
onLoad(option) { onLoad(option) {
@ -224,7 +229,24 @@
this.getList('-3,0,2,3,4,5,6,7,9'); this.getList('-3,0,2,3,4,5,6,7,9');
} }
}, },
onShow() {
console.log(this.selected);
this.page = 1;
this.list = [];
this.getList(this.selected);
},
onPullDownRefresh() {
uni.showLoading({
title: '加载中...'
});
this.page = 1;
this.list = [];
this.getList(this.selected);
setTimeout(() => {
uni.hideLoading();
uni.stopPullDownRefresh();
}, 2000)
},
onReachBottom() { onReachBottom() {
if (this.list.length < this.count) { if (this.list.length < this.count) {
this.page++; this.page++;
@ -238,18 +260,18 @@
return dateWeek(e); return dateWeek(e);
}, },
// //
dateWeekends(e){ dateWeekends(e) {
return dateWeekend(e); return dateWeekend(e);
}, },
formatTimestamp(timestamp) { formatTimestamp(timestamp) {
const date = new Date(timestamp * 1000); // 101000 const date = new Date(timestamp * 1000); // 101000
const year = date.getFullYear(); const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}, },
// //
close() { close() {
@ -290,24 +312,30 @@
"&classes_lib_id=" + classes_lib_id "&classes_lib_id=" + classes_lib_id
}) })
}, },
toInfo(id) {
//123
uni.navigateTo({
url: "/packageA/center/detail?id=" + id
})
},
// //
toDetail(id,order_no,status) { toDetail(id, order_no, status) {
if (status == 2 || status == 3) { if (status == 2 || status == 3) {
uni.navigateTo({ uni.navigateTo({
url: "/packageA/my/pendinPayDetail?id=" + id +"&order_no=" + order_no url: "/packageA/my/pendinPayDetail?id=" + id + "&order_no=" + order_no
}) })
}else{ } else {
uni.navigateTo({ uni.navigateTo({
url: "/packageA/my/pendinPayStatus?id=" + id + "&status=" + status url: "/packageA/my/pendinPayStatus?id=" + id + "&status=" + status
}) })
} }
}, },
// //
toPay(id,order_no) { toPay(id, order_no) {
uni.navigateTo({ uni.navigateTo({
url: "/packageA/my/pendinPay?id=" + id +"&order_no=" + order_no url: "/packageA/my/pendinPay?id=" + id + "&order_no=" + order_no
}) })
}, },
// //
@ -414,12 +442,12 @@
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
font-family: PingFang SC, PingFang SC; font-family: PingFang SC, PingFang SC;
position: fixed; position: fixed;
top: 0; top: 0;
.s-header { .s-header {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 150rpx; width: 150rpx;
height: 80rpx; height: 80rpx;
font-weight: 400; font-weight: 400;
@ -439,23 +467,27 @@
color: #323232; color: #323232;
line-height: 28rpx; line-height: 28rpx;
} }
.lines{
.lines {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
width: 44rpx; width: 44rpx;
} }
.lines.selected{
.lines.selected {
border-bottom: #323232 solid 8rpx; border-bottom: #323232 solid 8rpx;
} }
} }
.hdkuai{
.hdkuai {
background: #FFFFFF; background: #FFFFFF;
width: 690rpx; width: 690rpx;
height: 360rpx; height: 360rpx;
justify-content: space-around; justify-content: space-around;
margin: 30rpx; margin: 30rpx;
border-radius: 18rpx; border-radius: 18rpx;
.text_h{
.text_h {
font-family: PingFang SC, PingFang SC; font-family: PingFang SC, PingFang SC;
font-weight: 400; font-weight: 400;
font-size: 28rpx; font-size: 28rpx;
@ -466,28 +498,32 @@
text-transform: none; text-transform: none;
} }
.tut{
.tut {
width: 130rpx; width: 130rpx;
height: 130rpx; height: 130rpx;
border-radius: 8rpx; border-radius: 8rpx;
} }
.foot_btn{
margin:0 30rpx; .foot_btn {
margin: 0 30rpx;
justify-content: space-between; justify-content: space-between;
font-size: 28rpx; font-size: 28rpx;
color: #323232; color: #323232;
font-weight: 400; font-weight: 400;
box-sizing: border-box; box-sizing: border-box;
.btn_xq{
.btn_xq {
width: 180rpx; width: 180rpx;
height: 70rpx; height: 70rpx;
line-height: 70rpx; line-height: 70rpx;
text-align: center; text-align: center;
background: linear-gradient( 270deg, #FBF66D 0%, #9CEAA2 100%); background: linear-gradient(270deg, #FBF66D 0%, #9CEAA2 100%);
border-radius: 276rpx 276rpx 276rpx 276rpx; border-radius: 276rpx 276rpx 276rpx 276rpx;
} }
.btnhx{
.btnhx {
width: 180rpx; width: 180rpx;
height: 70rpx; height: 70rpx;
line-height: 70rpx; line-height: 70rpx;
@ -498,7 +534,8 @@
color: #BBFC5B; color: #BBFC5B;
margin-right: 20rpx; margin-right: 20rpx;
} }
.u-count-down__text{
.u-count-down__text {
color: #FF4810 !important; color: #FF4810 !important;
} }
@ -524,9 +561,11 @@
.justify-center { .justify-center {
justify-content: center; justify-content: center;
} }
.flex-between { .flex-between {
justify-content: space-between; justify-content: space-between;
} }
.align-items { .align-items {
align-items: center; align-items: center;
} }
@ -544,7 +583,7 @@
height: 1rpx; height: 1rpx;
background: #F0F0F0; background: #F0F0F0;
border-radius: 0rpx 0rpx 0rpx 0rpx; border-radius: 0rpx 0rpx 0rpx 0rpx;
margin:0 30rpx; margin: 0 30rpx;
} }
.centerBox { .centerBox {
@ -839,14 +878,15 @@
text-overflow: ellipsis; text-overflow: ellipsis;
/* 使用省略号表示被截断的文本 */ /* 使用省略号表示被截断的文本 */
} }
</style>
<style lang="scss">
.foot_btn {
</style> // #ifdef MP-WEIXIN
<style lang="scss" > .u-count-down__text {
.foot_btn{ color: #FF4810 !important;
// #ifdef MP-WEIXIN }
.u-count-down__text{
color: #FF4810 !important; // #endif
} }
// #endif
}
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
<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">
<view class="first-box flex flex-start flex-column justify-start"> <view class="first-box flex flex-start flex-column justify-start">
<view class="flex align-items justify-center"> <view class="flex align-items justify-center" @click="toInfo(detail.activity_id)">
<image class="head_img" v-if="detail.images.length > 0" :src="detail.images[0]" mode="" ></image> <image class="head_img" v-if="detail.images.length > 0" :src="detail.images[0]" mode="" ></image>
<view style="margin-left: 20rpx;"> <view style="margin-left: 20rpx;">
<view class="flex align-items"> <view class="flex align-items">
@ -95,10 +95,13 @@
<!-- v-if="detailAny.feel == 0" --> <!-- 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" v-if="detailAny.feel == 0"> <view class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 0 && detailAny.status==9">
<text @click="service(detailAny.id)"> 申请售后 </text> <text @click="service(detailAny.id)"> 申请售后 </text>
</view> </view>
<view class="footer-right flex justify-center align-items" v-else> <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>
<view class="footer-right flex justify-center align-items" v-if="detailAny.detail.feel == 1">
<text @click="cancelOrder(detailAny.id)"> 取消订单 </text> <text @click="cancelOrder(detailAny.id)"> 取消订单 </text>
</view> </view>
</view> </view>
@ -331,21 +334,69 @@
}, },
methods: { methods: {
// toInfo(id){
uni.navigateTo({
url: "/packageA/center/detail?id=" + id
})
},
// (1)
paidcancel(){
uni.showLoading({
title: '处理中...'
});
uni.$u.http.post('/api/school.newactivity.order/paidcancel', {
order_no: this.order_no
}).then(res => {
if (res.code == 1) {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
this.getDetail()
// uni.navigateBack(1)
// uni.navigateBack({
// delta: 1,
// success: (event) => {
// const pages = getCurrentPages()
// let prevPage = pages[pages.length - 1]
// prevPage.onLoad(prevPage.options)
// }
// });
uni.hideLoading();
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
uni.hideLoading();
}
}).catch(error => {
uni.hideLoading();
});
},
// (0)
cancelOrder() { cancelOrder() {
uni.$u.http.post('/api/school.newactivity.order/freecancel', { uni.$u.http.post('/api/school.newactivity.order/freecancel', {
order_no: this.order_no order_no: this.order_no
}).then(res => { }).then(res => {
if (res.code == 1) { if (res.code == 1) {
// uni.navigateBack(1) uni.showToast({
uni.navigateBack({ title: res.msg,
delta: 1, icon: 'none',
success: (event) => { duration: 2000
const pages = getCurrentPages()
let prevPage = pages[pages.length - 1]
prevPage.onLoad(prevPage.options)
}
}); });
this.getDetail()
// uni.navigateBack(1)
// uni.navigateBack({
// delta: 1,
// success: (event) => {
// const pages = getCurrentPages()
// let prevPage = pages[pages.length - 1]
// prevPage.onLoad(prevPage.options)
// }
// });
} else { } else {
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,

File diff suppressed because it is too large Load Diff

View File

@ -15,17 +15,17 @@
export default { export default {
data() { data() {
return { return {
status:'', option:{},
}; };
}, },
onLoad(option) { onLoad(option) {
this.status = option.status; this.option = option;
}, },
methods:{ methods:{
// //
toDetail(status){ toDetail(status){
uni.redirectTo({ uni.redirectTo({
url: "/packageA/my/exercise" url: "/packageA/my/pendinPayDetail?id="+this.option.id+"&order_no="+this.option.order_no
}) })
}, },
// //

View File

@ -43,7 +43,7 @@
姓名 姓名
</view> </view>
<view> <view>
<input type="number" placeholder="请填写真实姓名" class="input" v-model="form.name" /> <input type="text" placeholder="请填写真实姓名" class="input" v-model="form.name" />
</view> </view>
</view> </view>
<view style="height: 1px;width: 100%;background-color: #F0F0F0;"></view> <view style="height: 1px;width: 100%;background-color: #F0F0F0;"></view>
@ -52,7 +52,7 @@
身份证号 身份证号
</view> </view>
<view> <view>
<input type="number" placeholder="请填写身份证号" class="input" v-model="form.idnum" /> <input type="idcard" placeholder="请填写身份证号" class="input" v-model="form.idnum" />
</view> </view>
</view> </view>
</view> </view>
@ -99,6 +99,16 @@
uni.$u.toast('请填写身份证信息'); uni.$u.toast('请填写身份证信息');
return; return;
} }
//
const reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if(!reg.test(this.form.idnum)){
uni.showToast({
title: '请输入正确的身份证号',
icon: "none",
duration: 1500,
});
return;
}
uni.$u.http.post('/api/school.real_name/save',this.form).then(res=>{ uni.$u.http.post('/api/school.real_name/save',this.form).then(res=>{
console.log(res); console.log(res);
if(res.code==1){ if(res.code==1){

View File

@ -35,7 +35,7 @@
姓名 姓名
</view> </view>
<view style="width: 75%;"> <view style="width: 75%;">
<input type="number" placeholder="请填写真实姓名" class="input" v-model="form.name" /> <input type="text" placeholder="请填写真实姓名" class="input" v-model="form.name" />
</view> </view>
</view> </view>
<view style="height: 1px;background-color: #F0F0F0;width: 100%;margin-top: 20rpx;"></view> <view style="height: 1px;background-color: #F0F0F0;width: 100%;margin-top: 20rpx;"></view>
@ -44,7 +44,7 @@
身份证号 身份证号
</view> </view>
<view style="width: 75%;"> <view style="width: 75%;">
<input type="number" placeholder="请填写身份证号" class="input" v-model="form.idnum" /> <input type="idcard" placeholder="请填写身份证号" class="input" v-model="form.idnum" />
</view> </view>
</view> </view>
<view style="height: 1px;background-color: #F0F0F0;width: 100%;"></view> <view style="height: 1px;background-color: #F0F0F0;width: 100%;"></view>
@ -148,6 +148,16 @@ export default {
}); });
return; return;
} }
//
const reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if(!reg.test(this.form.idnum)){
uni.showToast({
title: '请输入正确的身份证号',
icon: "none",
duration: 1500,
});
return;
}
uni.$u.http.post('/api/school.newactivity.activity_join/add', this.form).then(res => { uni.$u.http.post('/api/school.newactivity.activity_join/add', this.form).then(res => {
console.log(res) console.log(res)
if (res.code == 1) { if (res.code == 1) {

View File

@ -15,7 +15,7 @@
身份证 身份证
</view> </view>
<view style="width: 80%;"> <view style="width: 80%;">
<input placeholder-class="plasty" placeholder="请输入您的身份证号" class="input" v-model="form.id_number" /> <input type="idcard" placeholder-class="plasty" placeholder="请输入您的身份证号" class="input" v-model="form.id_number" />
</view> </view>
</view> </view>
<view style="height: 1px;background-color: #F0F0F0;margin: 20rpx 0;"></view> <view style="height: 1px;background-color: #F0F0F0;margin: 20rpx 0;"></view>
@ -105,6 +105,16 @@ export default {
}); });
return; return;
} }
//
const reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if(!reg.test(this.form.id_number)){
uni.showToast({
title: '请输入正确的身份证号',
icon: "none",
duration: 1500,
});
return;
}
uni.$u.http uni.$u.http
.post("/api/school.newactivity.settle_log/save", { .post("/api/school.newactivity.settle_log/save", {
name: this.form.name, name: this.form.name,

View File

@ -110,19 +110,19 @@
:closeOnClickOverlay="false"> :closeOnClickOverlay="false">
<view style="font-size: 32rpx;font-weight: 400;margin: 12rpx 0 24rpx 0;">预计待入账金额说明</view> <view style="font-size: 32rpx;font-weight: 400;margin: 12rpx 0 24rpx 0;">预计待入账金额说明</view>
<view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;"> <view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;">
<text style="font-weight: 600;">1. 活动结束时:</text> <text style="font-weight: 600;">1. 活动结束时</text>
<text>您的可入账金额会显示为"预计待入账金额</text> <text>您的可入账金额会显示为预计待入账金额</text>
</view> </view>
<view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;"> <view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;">
<text style="font-weight: 600;">2. 7天售后期:</text> <text style="font-weight: 600;">2. 7天售后期</text>
<text>活动结束后7天内若发生售后问题(如退款)对应金额将从预计待入账"中扣除您的可入账金额会显示为"预计待入账金额</text> <text>活动结束后7天内若发生售后问题(如退款)对应金额将从预计待入账中扣除您的可入账金额会显示为预计待入账金额</text>
</view> </view>
<view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;"> <view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;">
<text style="font-weight: 600;">3. 查看售后进度:</text> <text style="font-weight: 600;">3. 查看售后进度</text>
<text>您可在我发布的-已售后中查询具体售后单详情</text> <text>您可在我发布的-已售后中查询具体售后单详情</text>
</view> </view>
<view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;"> <view style="font-size: 26rpx;color: #3D3D3D;padding-bottom: 20px;line-height: 20px;">
<text style="font-weight: 600;">4. 最终可提现金额</text> <text style="font-weight: 600;">4. 最终可提现金额</text>
<text>7天售后期结束后剩余未扣除的金额即可全额提现</text> <text>7天售后期结束后剩余未扣除的金额即可全额提现</text>
</view> </view>
<view class="popup-footer"> <view class="popup-footer">

View File

@ -13,7 +13,9 @@
"path": "pages/index/index", "path": "pages/index/index",
"style": { "style": {
"navigationBarTitleText": "多样青春·活动", "navigationBarTitleText": "多样青春·活动",
"navigationStyle": "custom" // "navigationStyle": "custom", //
"enablePullDownRefresh": true
} }
}, },
{ {
@ -34,7 +36,8 @@
"path": "pages/activity/index", "path": "pages/activity/index",
"style": { "style": {
"navigationBarTitleText": "活动中心", "navigationBarTitleText": "活动中心",
"navigationStyle": "custom" // "navigationStyle": "custom", //
"enablePullDownRefresh": true
} }
}, },
{ {
@ -122,13 +125,15 @@
{ {
"path": "my/orderList", "path": "my/orderList",
"style": { "style": {
"navigationBarTitleText": "我发布的活动" "navigationBarTitleText": "我发布的活动",
"enablePullDownRefresh": true
} }
}, },
{ {
"path": "my/exercise", "path": "my/exercise",
"style": { "style": {
"navigationBarTitleText": "我参与的活动" "navigationBarTitleText": "我参与的活动",
"enablePullDownRefresh": true
} }
}, },
{ {

View File

@ -95,6 +95,17 @@
this.page++; this.page++;
this.fetchMessages(this.selected); this.fetchMessages(this.selected);
}, },
onPullDownRefresh() {
uni.showLoading({
title: '加载中...'
});
this.resetLists();
this.fetchMessages(this.selected);
setTimeout(()=>{
uni.hideLoading();
uni.stopPullDownRefresh();
}, 2000)
},
methods: { methods: {
getinit() { getinit() {
uni.$u.http.get('/api/index/init', {}).then(res => { uni.$u.http.get('/api/index/init', {}).then(res => {

View File

@ -369,7 +369,7 @@
this.getAgreement() this.getAgreement()
this.getBqList(); this.getBqList();
this.getrefund_list(); this.getrefund_list();
this.getitembq(); //this.getitembq();
}, },
filters: { filters: {

View File

@ -37,7 +37,7 @@
<view class="first-image flex align-items" style="margin-top: 20rpx;width: 100%;"> <view class="first-image flex align-items" style="margin-top: 20rpx;width: 100%;">
<span class="time_tex" v-if="item.status == 2">{{ '报名中' }}</span> <span class="time_tex" v-if="item.status == 2">{{ '报名中' }}</span>
<image v-if="cate_ids != 1" :src="item.user.avatar" <image v-if="cate_ids != 1" :src="item.user.avatar"
style="width: 36rpx;height: 36rpx;border-radius: 80rpx;"></image> style="width: 36rpx;height: 36rpx;border-radius: 80rpx;margin-left: 10rpx;"></image>
<image v-else :src="item.headimage" <image v-else :src="item.headimage"
style="width: 36rpx;height: 36rpx;border-radius: 80rpx;"></image> style="width: 36rpx;height: 36rpx;border-radius: 80rpx;"></image>
<span v-if="cate_ids != 1" <span v-if="cate_ids != 1"
@ -98,7 +98,10 @@
</view> </view>
</view> </view>
<view class="bottom_box flex justify-center align-items" style="height: 1240rpx;width: 100%;" v-if="hotList.length == 0"> <view class="bottom_box flex justify-center align-items" style="height: 1240rpx;width: 100%;" v-if="hotList.length == 0">
暂无数据 <view style="text-align: center;">
<image src="/static/no.png" style="width: 150rpx;height: 150rpx;"></image>
<view>暂无数据</view>
</view>
</view> </view>
<u-loadmore v-else style="margin-bottom: 60rpx;" :status="loadStatus" /> <u-loadmore v-else style="margin-bottom: 60rpx;" :status="loadStatus" />
</view> </view>
@ -767,8 +770,6 @@
font-size: 26rpx; font-size: 26rpx;
color: #3D3D3D; color: #3D3D3D;
line-height: 30rpx; line-height: 30rpx;
width: 38%;
margin-left: 20rpx;
} }
.text { .text {

View File

@ -24,7 +24,7 @@
<view class="swiper-box"> <view class="swiper-box">
<!-- <MySwiper :list="swiperList"></MySwiper> --> <!-- <MySwiper :list="swiperList"></MySwiper> -->
<view class="swiper_s"> <view class="swiper_s">
<swiper class="swiper_s" :autoplay="true" indicator-active-color="#0DAE11" indicator-color="#ffffff" <swiper class="swiper_s" :circular="true" :autoplay="true" indicator-active-color="#0DAE11" indicator-color="#ffffff"
:indicator-dots="false" :current="swiperCurrent" @change="swiperChange"> :indicator-dots="false" :current="swiperCurrent" @change="swiperChange">
<swiper-item v-for="(item, index) in swiperList" :key="index" @click="openSwiper(item)"> <swiper-item v-for="(item, index) in swiperList" :key="index" @click="openSwiper(item)">
<view style="position: relative;width: 100%;height: 100%"> <view style="position: relative;width: 100%;height: 100%">
@ -325,6 +325,17 @@
// uni.hideTabBar(); // uni.hideTabBar();
}, },
onPullDownRefresh() {
uni.showLoading({
title: '加载中...'
});
this.resetLists();
this.getHotList();
setTimeout(()=>{
uni.hideLoading();
uni.stopPullDownRefresh();
}, 2000)
},
mounted() { mounted() {
this.videoContext = uni.createVideoContext("myVideo"); //video this.videoContext = uni.createVideoContext("myVideo"); //video
}, },

View File

@ -400,14 +400,14 @@ export default {
}, },
iszhuliren() { iszhuliren() {
uni.showToast({ uni.showToast({
title: '开发中,暂未开放', title: '开发中,敬请期待~',
icon: 'none' icon: 'none'
}); });
}, },
callPhone(phone) { callPhone(phone) {
console.log(phone) console.log(phone)
uni.showToast({ uni.showToast({
title: '开发中,暂未开放', title: '开发中,敬请期待~',
icon: 'none' icon: 'none'
}); });
// uni.makePhoneCall({ // uni.makePhoneCall({

BIN
static/no.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB