1、分包packageA中删除部分不使用的页面

2、修改、重发的图片逻辑,价格、文本域接富文本内容、调整报名时间位置
This commit is contained in:
wangzimeng 2025-07-04 18:34:21 +08:00
parent ded0c3cbd4
commit ec699798bf
25 changed files with 1915 additions and 5517 deletions

View File

@ -1,6 +1,6 @@
{
"name" : "多样青春活动版",
"appid" : "__UNI__F09A3D9",
"appid" : "__UNI__BD0139D",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",

View File

@ -735,12 +735,7 @@
}
});
},
//
toMeDetail() {
uni.navigateTo({
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
})
},
close() {
this.type = 0

View File

@ -697,65 +697,65 @@
this.type = 3
},
// type = 0 0 1 2 3
confimTime() {
uni.$u.http.post('/api/school/hour_order/confirm', {
classes_order_id: this.orderId,
classes_lib_spec_id: this.classes_lib_spec_id,
order_no: this.order_no2,
is_compute: 1
}).then(res => {
if (res.code == 1) {
this.order_no2 = res.data.order_no
this.timeCreat(res.data.order_no)
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
this.type = 2
// _this.$api.toast(res.msg);
}
}).catch(error => {
// confimTime() {
// uni.$u.http.post('/api/school/hour_order/confirm', {
// classes_order_id: this.orderId,
// classes_lib_spec_id: this.classes_lib_spec_id,
// order_no: this.order_no2,
// is_compute: 1
// }).then(res => {
// if (res.code == 1) {
// this.order_no2 = res.data.order_no
// this.timeCreat(res.data.order_no)
// } else {
// uni.showToast({
// title: res.msg,
// icon: 'none',
// duration: 2000
// })
// this.type = 2
// // _this.$api.toast(res.msg);
// }
// }).catch(error => {
});
// });
this.show = false
this.type = 0
},
//
timeCreat(order_no) {
uni.$u.http.post('/api/school/hour_order/create', {
order_no: order_no,
}).then(res => {
if (res.code == 1) {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000,
complete: function() {
setTimeout(function() {
uni.reLaunch({
url: "/packageA/my/makeList?status=" + -1
})
}, 2000);
}
// this.show = false
// this.type = 0
// },
// //
// timeCreat(order_no) {
// uni.$u.http.post('/api/school/hour_order/create', {
// order_no: order_no,
// }).then(res => {
// if (res.code == 1) {
// uni.showToast({
// title: res.msg,
// icon: 'none',
// duration: 2000,
// complete: function() {
// setTimeout(function() {
// uni.reLaunch({
// url: "/packageA/my/makeList?status=" + -1
// })
// }, 2000);
// }
})
// })
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
this.type = 2
// _this.$api.toast(res.msg);
}
}).catch(error => {
// } else {
// uni.showToast({
// title: res.msg,
// icon: 'none',
// duration: 2000
// })
// this.type = 2
// // _this.$api.toast(res.msg);
// }
// }).catch(error => {
});
},
// });
// },
//
toMap(latitude, longitude, name) {
uni.openLocation({
@ -767,12 +767,7 @@
}
});
},
//
toMeDetail() {
uni.navigateTo({
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
})
},
close() {
this.type = 0

File diff suppressed because it is too large Load Diff

View File

@ -1,416 +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.headimage" mode=""
style="width: 690rpx;height: 482rpx;border-radius: 10rpx;"></image>
<span class="title white-space">{{item.title}}</span>
<view class="icon flex align-items">
<span class="white-space"
style="font-size: 24rpx;">{{'活动时间: ' + item.start_time_text + '-' + item.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.feel == 1">活动费用:{{'' + '公益'}}</span>
<span style="color:#7A7A7A;" v-if="item.feel == 2">活动费用:{{''+ item.price}}</span>
</span>
</view>
<span class="Sign bg-blue flex justify-center align-items" @click.stop="open(item.id)">订单管理</span>
</view>
</view>
</view>
<u-loadmore :status="loadStatus" />
</view>
</template>
<script>
export default {
data() {
return {
page: 1,
limit: 10,
keywords: '',
list: [],
count: 1,
loadStatus: 'nomore',
shop_id: '',
};
},
onLoad() {
this.shop_id = uni.getStorageSync('shop_id')
},
onShow() {
this.page = 1
this.list = []
this.getList();
},
onReachBottom() {
// this.getList();
if (this.count) {
this.getList();
}
},
methods: {
//
open(id){
uni.navigateTo({
url:"/packageA/activity/acList?id=" + id
})
},
getList() {
uni.$u.http.get('/api/school/activity/activity_list', {
params: {
keywords: this.keywords,
page: this.page,
limit: this.limit,
order: 'normal',
shop_id: this.shop_id,
status: '1'
}
}).then(res => {
if (res.code == 1) {
if (res.data.list.data.length > 0) {
this.count = res.data.list.data.length;
if(this.count){
this.loadStatus = 'nomore';
this.page++;
} else {
this.loadStatus = 'loading';
}
this.list = [...this.list, ...res.data.list.data]
// if (this.list.length >= this.count) {
// this.loadStatus = 'loading';
// } else {
// this.loadStatus = 'nomore';
// }
} else {
// this.count = this.list.length
this.loadStatus = 'nomore';
}
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
console.log(error)
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
open(id) {
uni.navigateTo({
url: "/packageA/activity/acList?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 {
width: 170rpx;
height: 56rpx;
border-radius: 12rpx 12rpx 12rpx 12rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 32rpx;
color: #FFFFFF;
letter-spacing: 8rpx;
align-self: flex-end;
margin-right: 24rpx;
margin-bottom: 32rpx;
}
.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>

View File

@ -58,11 +58,11 @@
@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 == 9 && item.invoice_status == 0" class="btn_Inv"
<!-- <view v-if="item.status == 9 && item.invoice_status == 0" class="btn_Inv"
@click="toAddInvoic(item.id, item.order_no)">申请开票</view>
<view v-if="item.status == 9 && item.invoice_status == 1" class="btn_InvIng">开票中</view>
<view v-if="item.status == 9 && item.invoice_status == 2" class="btn_Inv"
@click="checkInvoice(item.id, item.order_no)">查看开票</view>
@click="checkInvoice(item.id, item.order_no)">查看开票</view> -->
<view v-if="item.status != 0" class="btn_xq"
@click="toDetail(item.id, item.order_no, item.status)">查看详情</view>
</view>
@ -81,96 +81,7 @@
<!-- <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>
@ -332,14 +243,7 @@
}
}).catch(error => {});
},
//
toMake(id, orderId, classes_lib_id, type) {
uni.navigateTo({
// url: "/packageA/center/applyDetail?id=" + id + "&orderId=" + orderId + "&type=" + 2
url: "/packageA/center/orderDetail?id=" + id + "&orderId=" + orderId + "&type=" + 2 +
"&classes_lib_id=" + classes_lib_id
})
},
toInfo(id) {
//123
uni.navigateTo({

View File

@ -1,726 +0,0 @@
<template>
<view class="box flex justify-center align-items flex-column">
<view class="con-center flex flex-column justify-center align-items" style="margin-top: 24rpx;">
<view class="flex align-items" style="width: 100%;justify-content: flex-start;">
<view class="search flex align-items" style="width: 508rpx;">
<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" @input="onInput" class="input"
placeholder-class="plasty" />
</view>
<span class="searchBtn" @click.stop="addClass()">创建课程</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" @click="toDetail(item.id,item.shop_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="price" v-if="item.feel == 0">课程价格 <span
style="color: #FF2323;">{{'¥' + item.price}}</span> </span>
<span class="price" style="color: #FF2323;" v-else>免费</span>
<view class="flex align-items" style="justify-content: space-between;margin-top: 12rpx;">
<span class="pass" v-if="item.auth_status == 1">审核通过</span>
<span class="full" v-if="item.auth_status == 0">审核中</span>
<span class="full" v-if="item.auth_status == 2">审核未通过</span>
</view>
<view class="flex align-items" style="justify-content: flex-end;margin-top: 12rpx;">
<span class="Cancel" @click.stop="Confirm(item.id,2)" v-if="item.status == 1">下架</span>
<span class="Cancel" @click.stop="Confirm(item.id,1)" v-if="item.status == 2">上架</span>
<span class="hui" v-if="item.auth_status != 1">上架</span>
<span class="lan" @click.stop="toList(item.id)">订单管理</span>
</view>
<!-- <span class="full" v-if="item.status == 1">已上架</span>
<span class="full" v-if="item.status == 2">已下架</span>
<span class="full" v-if="item.status == 3">平台下架</span> -->
</view>
</view>
<!-- <span class="error" v-if="item.auth_status == 2">审核失败:{{item.reason}}</span> -->
<span class="box-line"></span>
</view>
</view>
</view>
<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'],
}],
QRShow: false,
size: 13,
sortStyle: ['#ff557f', '#3f3f3f'],
headers: [{
status: '-1',
text: '全部'
},
{
status: '1',
text: '上架'
},
{
status: '2',
text: '下架'
}
// {
// status: '3',
// text: ''
// }
],
popupStyle: {
width: '690rpx',
margin: '0 auto', //
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
padding: '0',
borderRadius: '20rpx'
},
selected: '-1',
auth_status: '-1',
page: 1,
limit: 10,
loadStatus: 'loading',
keywords: '',
list: [],
show: false,
qrcode: {},
order_no: '',
QR: {},
last_page: 0,
shop_id: ''
};
},
onLoad() {
this.shop_id = uni.getStorageSync('shop_id')
},
onShow() {
this.page = 1
this.list = []
this.getList(this.selected);
},
onReachBottom() {
if (this.page < this.last_page) {
this.page++;
this.getList(this.selected);
}
},
methods: {
openUrl(url) {
uni.navigateTo({
url: url
})
},
switchSort(index, value) {
console.log(index, value);
},
//
toDetail(id,shop_id) {
uni.navigateTo({
url: "/packageA/my/addManagement?id=" + id + '&shop_id=' + shop_id
})
},
//
toList(id) {
uni.navigateTo({
url: "/packageA/my/mentList?id=" + id
})
},
Confirm(id, status) {
uni.$u.http.post('/api/school.worker.classes/update_status', {
id: id,
status: status
}).then(res => {
if (res.code == 1) {
this.page = 1
this.list = []
this.getList(this.selected)
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
console.error('请求失败', error);
});
},
//
addClass() {
uni.$u.http.get('/api/school/shop/auth_info', ).then(res => {
if (res.code == 1) {
if (res.data.check_full){
uni.navigateTo({
url: "/packageA/my/addManagement?shop_id=" + this.shop_id
})
} else{
uni.showToast({
title: '必要展示信息未完善,请先在机构完善展示信息',
icon: 'none',
duration: 2000
});
}
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
console.error('请求失败', error);
});
},
//
onInput(e) {
console.log(e)
const that = this
this.keywords = e.detail.value
that.page = 1
that.list = []
this.selected = '-1'
this.getList(this.selected)
},
//
getList(status) {
// if (this.loadStatus === 'nomore') return;
uni.$u.http.get('/api/school/classes/classes_list', {
params: {
keywords: this.keywords,
page: this.page,
limit: this.limit,
status: status,
order: 'normal',
shop_id: this.shop_id,
auth_status: this.auth_status
}
}).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';
});
},
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;
},
//
// toDetail(id, orderId) {
// uni.navigateTo({
// url: "/packageA/center/detail?id=" + id + "&orderId=" + orderId
// })
// }
}
}
</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;
padding: 10rpx 20rpx;
height: 50rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9E9E9E;
line-height: 26rpx;
}
.s-header.selected {
// width: 104rpx;
padding: 10rpx 20rpx;
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;
}
}
.searchBtn {
width: 164rpx;
height: 64rpx;
background: #008CFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
display: flex;
justify-content: center;
align-items: center;
margin-left: 18rpx;
}
}
}
.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: 18rpx;
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: 24rpx;
}
.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;
}
.price {
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 24rpx;
color: #FF2323;
}
.hui {
width: 138rpx;
height: 48rpx;
background: #D9D9D9;
border-radius: 12rpx 12rpx 12rpx 12rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 24rpx;
color: #FFFFFF;
letter-spacing: 4px;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-end;
margin-right: 16rpx;
}
.lan {
width: 138rpx;
height: 50rpx;
background: #008CFF;
border-radius: 12rpx 12rpx 12rpx 12rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 24rpx;
color: #FFFFFF;
letter-spacing: 8rpx;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-end;
}
.name {
font-family: PingFang SC, PingFang SC;
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-family: PingFang SC, PingFang SC;
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: #008CFF;
}
.full {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FF2323;
}
.money {
font-weight: 800;
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;
margin-right: 16rpx;
}
.xia {
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: 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 {
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;
}
}
.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>

View File

@ -1,547 +0,0 @@
<template>
<view class="box flex flex-column flex-start align-items">
<view class="top flex ">
<image :src="detail.headimage" mode="" style="width: 280rpx;height: 200rpx;border-radius: 12rpx;"></image>
<view class="rightBox flex flex-column flex-start">
<span class="name">{{detail.title}}</span>
<span class="minge">开始时间:{{detail.start_time_text}}</span>
<span class="minge">结束时间:{{detail.end_time_text}}</span>
<span class="minge">课程销量:{{detail.sale}}</span>
<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>
<view class="con-center flex flex-column flex-start align-items" style="margin-top: 24rpx;min-height: 73vh;">
<view class="flex align-items" style="width: 100%;justify-content: flex-start;">
<view class="search flex align-items" style="width: 508rpx;">
<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" @input="onInput" class="input"
placeholder-class="plasty" />
</view>
<span class="searchBtn" @click.stop="addClass()">搜索</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="centerBox flex justify-start align-items flex-column" v-for="(item,index) in list" :key="index"
@click.stop="toRefund(item.id)">
<view class="flex w-100 space-between hui align-items">
<span>订单号</span>
<span>{{item.order_no}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;">
<span>购买人/联系电话</span>
<span class="flex align-items" style="color: #71D0FF;"
@click.stop="callPhone(item.user.mobile)">{{item.user.realname || item.user.nickname}}/{{item.user.mobile}}
<span>
<image src="../../static/tel.png" mode="" style="width: 36rpx;height: 36rpx;"></image>
</span>
</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" v-if="selected == 0">
<span>创建时间</span>
<span>{{item.createtime | formatDateTime}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" v-if="selected == 3">
<span>购买时间</span>
<span>{{item.paytime_text}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" v-if="selected == 4">
<span>发起时间</span>
<span>{{item.serviceorder.createtime | formatDateTime}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" v-if="selected == 6">
<span>退款时间</span>
<span>{{item.serviceorder.refundtime_text}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;" v-if="selected == 9">
<span>完成时间</span>
<span>{{item.serviceorder.checkouttime_text}}</span>
</view>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;">
<span>订单状态</span>
<span class="status" v-if="item.status == 4" style="font-size: 26rpx;color: #FF2323;">售后中</span>
<span class="status" v-if="item.status == 0" style="font-size: 26rpx;color: #008CFF;">待支付</span>
<span class="status" v-if="item.status == 3" style="font-size: 26rpx;color: #008CFF;">使用中</span>
<span class="status" v-if="item.status == 6" style="font-size: 26rpx;color: #FF2323;">已退款</span>
<span class="status" v-if="item.status == 9" style="font-size: 26rpx;color: #34DC12;">已完成</span>
</view>
<span class="box-line"></span>
<view class="flex w-100 space-between hui align-items" style="margin-top: 8rpx;"
v-if=" item.status == 4">
<span>售后状态</span>
<span class="status" style="color: #FF2323;font-size: 26rpx;"
v-if="item.serviceorder.status == 1 && item.status == 4">待处理</span>
<span class="status" v-if="item.serviceorder.status == 4 && item.status == 4">处理中</span>
<span class="status" v-if="item.serviceorder.status == 7 && item.status == 4">已结单</span>
<span class="status" v-if="item.serviceorder.status == -3 && item.status == 4">已取消</span>
<span class="status" v-if="item.serviceorder.status == -3 && item.status == 4">已取消</span>
</view>
<view class="flex w-100" style="justify-content: flex-end;margin-top: 24rpx;">
<span class="copy" style="margin-right: 10rpx;" @click.stop="copy(item.order_no)">复制消息</span>
<span class="refund" v-if="item.status == 3" @click.stop="toRefund(item.id)">退款</span>
<span class="refundNone" v-if="item.status == 0">退款</span>
<span class="refund"
v-if="(item.serviceorder.status == 1 || item.serviceorder.status == 4) && item.status == 4"
@click.stop="toRefund(item.id)">处理</span>
<span class="refundNone"
v-if="(item.serviceorder.status == 7 || item.serviceorder.status == -3) && item.status == 4">处理</span>
</view>
</view>
</view>
<u-loadmore :status="loadStatus" />
</view>
</template>
<script>
export default {
data() {
return {
detail: {},
page: 1,
limit: 10,
selected: '0,3,6,9,4',
list: [],
keywords: '',
classes_lib_id: '',
loadStatus: 'loading',
count: 0,
headers: [{
status: '0,3,6,9,4',
text: '全部'
},
{
status: '0',
text: '待支付'
},
{
status: '3',
text: '使用中'
},
{
status: '4',
text: '售后中'
},
{
status: '6',
text: '已退款'
},
{
status: '9',
text: '已完成'
}
],
};
},
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) {
this.classes_lib_id = option.id
// this.getList(this.selected)
},
onShow() {
this.page = 1
this.list = []
this.getDetail(this.classes_lib_id)
this.getList(this.selected);
},
onReachBottom() {
if (this.list.length < this.count) {
this.page++;
this.getList(this.selected);
}
},
methods: {
//
toRefund(id) {
uni.navigateTo({
url: "/packageA/my/refund?id=" + id
})
},
copy(order) {
uni.setClipboardData({
data: order, //
success: () => {
uni.showToast({
title: "复制订单号成功"
})
}
})
},
getDetail(id) {
uni.$u.http.get('/api/school/classes/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
})
}
}).catch(error => {});
},
getList(status) {
uni.$u.http.get('/api/school/worker/order/order_list', {
params: {
keywords: this.keywords,
page: this.page,
limit: this.limit,
status: status,
classes_lib_id: this.classes_lib_id
}
}).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;
},
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;
}
.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;
}
.box {
width: 750rpx;
background: #F1F2F8;
.con-center {
width: 690rpx;
// margin-top: 25rpx;
}
.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;
margin-bottom: 16rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
/* 设置行数 */
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
/* 防止单词被截断 */
}
.minge {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #7A7A7A;
margin-top: 8rpx;
height: 32rpx;
}
.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;
}
.header {
// height: 50rpx;
margin-top: 37rpx;
.s-header {
// width: 104rpx;
width: 84rpx;
height: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9E9E9E;
}
.s-header.selected {
// width: 104rpx;
padding: 10rpx 10rpx;
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;
}
}
.searchBtn {
width: 164rpx;
height: 64rpx;
background: #008CFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
display: flex;
justify-content: center;
align-items: center;
margin-left: 18rpx;
}
}
.search {
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;
}
}
.centerBox {
width: 642rpx;
padding: 24rpx 24rpx 32rpx 24rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-top: 24rpx;
.box-line {
width: 635rpx;
height: 1rpx;
background: #C0C0C0;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin-top: 13rpx;
}
.status {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 26rpx;
color: #008CFF;
}
}
.copy {
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;
display: flex;
justify-content: center;
align-items: center;
letter-spacing: 8rpx;
}
.refundNone {
width: 138rpx;
height: 48rpx;
background: #D9D9D9;
border-radius: 12rpx 12rpx 12rpx 12rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 24rpx;
color: #FFFFFF;
display: flex;
justify-content: center;
align-items: center;
}
.refund {
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;
display: flex;
justify-content: center;
align-items: center;
}
</style>

View File

@ -64,11 +64,17 @@
<span class="time_tex" v-if="item.status == 2">{{
"报名中"
}}</span>
<span v-if="item.status == 2"
<!-- <span v-if="item.status == 2"
style="margin: 0 20rpx">{{ dateWeeks(item.sign_start_time) }}</span>
<span v-if="item.status != 2"
style="margin: 0 20rpx 0 0">{{ dateWeeks(item.sign_start_time) }}
</span><span
</span> -->
<span v-if="item.status == 2"
style="margin: 0 20rpx">{{ dateWeeks(item.start_time) }}</span>
<span v-if="item.status != 2"
style="margin: 0 20rpx 0 0">{{ 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>
@ -85,21 +91,30 @@
</view>
</view>
</view>
</view>
<view
style="display: flex;align-items: center;justify-content: flex-end;gap: 20rpx;width: 96%;margin-bottom: 30rpx;"
v-if="item.auth_status == 0 || item.status == 1">
v-if="item.auth_status == 0">
<view class="part flex justify-center align-items"
v-if="item.auth_status == 0 || item.status == 1"
v-if="item.auth_status == 0 "
@click.stop="editItem(item.id)"> 修改 </view>
</view>
</view>
</view>
<!-- <view
style="display: flex;align-items: center;justify-content: flex-end;gap: 20rpx;width: 96%;margin-bottom: 30rpx;"
v-if="item.auth_status == 1 && item.status == -1">
<view class="part flex justify-center align-items"
@click.stop="editItem(item.id)"> 重发 </view>
<view class="part flex justify-center align-items"
@click.stop="editItem(item.id)"> 详情 </view>
</view> -->
<view class="bottom flex align-items" v-if="item.auth_status != 0"
style="justify-content: space-between;padding: 0rpx 20rpx;">
<view v-if="item.status == 1">
<view v-if="item.status == 1" style="width: auto;">
<image src="/static/index/dian.png"
style="width: 60rpx;height: 60rpx;vertical-align: middle;"></image>
<text
@ -123,16 +138,20 @@
<text>核销</text>
<text style="color: orangered;">{{ item.verification_num }}</text>
<text>/{{ item.stock }}</text>
</view>
<view v-if="item.status == -1 && item.auth_status == 1 || item.status == 3 || item.status == 4">
</view>
<view
style="display: flex;align-items: center;justify-content: flex-end;gap: 20rpx;width: 96%;">
style="display: flex;align-items: center;justify-content: flex-end;gap: 20rpx;">
<view v-if="item.status == 3 || item.status == 4"
class="part1 flex justify-center align-items" @click.stop="toHexiao"> 核销
</view>
<view class="part flex justify-center align-items"
v-if="item.auth_status == 0 || item.status == 1"
@click.stop="editItem(item.id)"> 修改 </view>
<view class="part flex justify-center align-items" v-if="item.status == -1 && item.auth_status != 2"
<view class="part flex justify-center align-items"
v-if="item.status == -1 && item.auth_status == 1"
@click.stop="copyNewItem(item.id)"> 重发 </view>
<view class="part flex justify-center align-items" v-if="item.auth_status != 2 "
@click.stop="detail(item.id)"> 详情 </view>
@ -143,7 +162,8 @@
<view class="part flex justify-center align-items" @click.stop="detail(item.id)"> 详情 </view>
</view> -->
</view>
<view style="padding: 30rpx;" v-if="item.auth_status == 2 ">
<view style="padding: 30rpx;" v-if="item.auth_status == 2 && item.status == -1">
<view
style="height: 160rpx;color: #323232;font-size: 26rpx;;padding: 20rpx;background: #F7F7F7;border: 1rpx solid #C1C1C1;border-radius: 18rpx 18rpx 18rpx 18rpx;">
未通过原因{{item.reason}}
@ -151,10 +171,13 @@
</view>
<view
style="display: flex;align-items: center;justify-content: flex-end;gap: 20rpx;width: 96%;margin-bottom: 30rpx;">
<view class="part1 flex justify-center align-items" v-if="item.auth_status == 2 "
style="display: flex;align-items: center;justify-content: flex-end;gap: 20rpx;width: 96%;margin-bottom: 30rpx;"
v-if="item.auth_status == 2 && item.status == -1">
<view class="part1 flex justify-center align-items"
v-if="item.auth_status == 2 && item.status == -1"
@click.stop="cancelsOpen(item.id)"> 取消 </view>
<view class="part flex justify-center align-items" v-if="item.auth_status == 2 "
<view class="part flex justify-center align-items"
v-if="item.auth_status == 2 && item.status == -1"
@click.stop="copyItem(item.id)"> 编辑 </view>
</view>
</view>
@ -389,7 +412,7 @@
this.list = []
this.page = 1
this.hotList = []
console.log('hotList',this.hotList);
console.log('hotList', this.hotList);
// this.getHotList(this.selected);
if (this.status == -2) {
this.getAfterList();
@ -566,12 +589,14 @@
console.log('跳转接口', val, this.auth_status);
var auth_status = '';
if (val == 0) {
val = '1,2,3,4,5,-1';
// val = '1,2,3,4,5,-1';
val = '1,2,3,4,5';
auth_status = this.auth_status;
console.log('val==0', this.auth_status);
} else {
if (val == '-1') {
auth_status = '0,1,2';
// auth_status = '0,1,2';
auth_status = '0,1';
} else {
auth_status = '1';
}
@ -684,63 +709,8 @@
})
.catch((error) => {});
},
//
toMake(id, orderId, classes_lib_id, type) {
uni.navigateTo({
// url: "/packageA/center/applyDetail?id=" + id + "&orderId=" + orderId + "&type=" + 2
url: "/packageA/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: "/packageA/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: "/packageA/center/orderDetail?id=" +
id +
"&orderId=" +
orderId +
"&order_no=" +
order_no +
"&type=" +
1 +
"&classes_lib_id=" +
classes_lib_id,
});
},
//
service(id) {
uni.navigateTo({
@ -823,6 +793,8 @@
this.status = status;
if (status == -2) {
this.getAfterList();
}else if(status == -2){
} else {
this.getHotList(status);
}
@ -1384,7 +1356,7 @@
}
.bottom {
margin: 0rpx 10rpx 30rpx 10rpx;
margin: 0rpx 0rpx 30rpx 10rpx;
.number {
font-family: Source Han Sans CN, Source Han Sans CN;

View File

@ -511,12 +511,7 @@
}
});
},
//
toMeDetail() {
uni.navigateTo({
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
})
},
close() {
this.type = 0

View File

@ -605,12 +605,7 @@
}
});
},
//
toMeDetail() {
uni.navigateTo({
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
})
},
close() {
this.type = 0

View File

@ -56,12 +56,12 @@
<view><u-icon name="arrow-right"></u-icon></view>
</view>
</view>
<view class="list-item" @click="openUrl('/packageB/invoice/invoiceCenter')">
<!-- <view class="list-item" @click="openUrl('/packageB/invoice/invoiceCenter')">
<view class="left">发票中心</view>
<view class="right">
<view><u-icon name="arrow-right"></u-icon></view>
</view>
</view>
</view> -->
<view class="list-item" @click="openSfz()">
<view class="left">
身份信息

View File

@ -1,637 +0,0 @@
<template>
<view style="background: #F1F2F8;min-height: 100vh;">
<view style="padding: 30rpx 30rpx 250rpx 30rpx;">
<view style="background-color: #ffffff;border-radius: 20rpx;padding:30rpx">
<view style="display: flex;align-self: center;align-items: start;">
<view style="width: 45%;">
<image :src="info.detail.headimage" style="width: 280rpx; height: 200rpx;" mode="aspectFill">
</image>
</view>
<view style="padding-left: 20rpx;">
<view style="font-size: 36rpx;font-weight: 600;">{{info.detail.title}}</view>
<view style="font-size: 26rpx;color: #7A7A7A;margin-top: 15rpx;">
<image src="/static/center/address.png"
style="width: 40rpx;height: 40rpx;vertical-align: middle;"></image>
<text style="vertical-align: middle;">{{info.detail.address}}</text>
</view>
</view>
</view>
<view style="height: 1px;width: 70%;background: #D9D9D9;margin: 45rpx auto;"></view>
<view v-if="info!=''" class="item-spacing"
style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">当前状态</view>
<span class="status"
v-if="info.serviceorder && info.serviceorder.status == 1 && info.serviceorder.service_stauts == 1"
style="font-size: 26rpx;color: #FF2323;">待机构处理</span>
<span class="status"
v-if="info.serviceorder && info.serviceorder.status == 4 && info.serviceorder.service_stauts == 7"
style="font-size: 26rpx;color: #FF2323;">售后通过结单中</span>
<span class="status"
v-if="info.serviceorder && info.serviceorder.status == 4 && info.serviceorder.service_stauts == 4"
style="font-size: 26rpx;color: #FF2323;">待用户确认</span>
<span class="status"
v-if="info.serviceorder && info.serviceorder.status == 7 && info.serviceorder.service_stauts == 4"
style="font-size: 26rpx;color: #FF2323;">售后结单完成</span>
<span class="status" v-if="info.status == 0" style="font-size: 26rpx;color: #008CFF;">待支付</span>
<span class="status" v-if="info.status == 3" style="font-size: 26rpx;color: #008CFF;">使用中</span>
<span class="status" v-if="info.status == 6" style="font-size: 26rpx;color: #FF2323;">已退款</span>
<span class="status" v-if="info.status == 9" style="font-size: 26rpx;color: #34DC12;">已完成</span>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">课程机构</view>
<view style="color: #343434;">{{info.shop.name}}</view>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">讲师/电话</view>
<view style="color: #71D0FF;" @click="callPhone(info.shop.tel)">
<text style="vertical-align: middle;">{{info.detail.teacher.name}}/{{info.shop.tel}}</text>
<image src="/static/tel.png" style="width: 40rpx;height: 40rpx;vertical-align: middle;"></image>
</view>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;" v-if="info.status != 3">
<view style="color: #7A7A7A;">退款原因</view>
<view style="color: #343434;">{{info.serviceorder.reason}}</view>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">订单号</view>
<view style="color: #343434;">{{info.order_no}}</view>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">购买时间</view>
<view style="color: #343434;">
{{ info.detail ? formatTimestamp(info.detail.createtime) : '加载中...' }}
</view>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">全部课时</view>
<view style="color: #343434;">{{info.detail.classes_num}}</view>
</view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">已用课时</view>
<view style="color: #343434;">{{info.detail.use_num}}</view>
</view>
<view style="display: flex; justify-content: space-between; font-size: 26rpx;">
<view style="color: #7A7A7A;">购买价格</view>
<view style="color: #FF5F5F;" v-if="info.detail.feel == 0">{{info.detail.price}}</view>
<view style="color: #FF5F5F;" v-if="info.detail.feel == 1">免费</view>
</view>
<view class="line-row" v-if="(info.serviceorder && info.serviceorder.status == 4 && info.serviceorder.service_stauts == 4) || info.status == 6 || info.status == 9 || (info.serviceorder && info.serviceorder.status == 4 && info.serviceorder.service_stauts == 7)"></view>
<view class="item-spacing" style="display: flex; justify-content: space-between; font-size: 26rpx;" v-if="(info.serviceorder && info.serviceorder.status == 4 && info.serviceorder.service_stauts == 4) || info.status == 6 || info.status == 9 || (info.serviceorder && info.serviceorder.status == 4 && info.serviceorder.service_stauts == 7)">
<view style="color: #7A7A7A;">商家退款金额</view>
<view style="color: #FF2323;font-weight: 800;font-size: 36rpx;">{{'¥' + info.serviceorder.tbc_price}}</view>
</view>
</view>
<!-- <view class="flex flex-column" style="background-color: #ffffff;border-radius: 20rpx;padding:30rpx;margin-top: 42rpx;">
<span style="font-family: PingFang SC, PingFang SC;font-weight: 500;font-size: 24rpx;color: #7A7A7A;">用户驳回退款金额</span>
<view class="line-row" style="margin: 24rpx 0 18rpx 0;"></view>
<span style="font-family: PingFang SC, PingFang SC;font-weight: 500;font-size: 24rpx;color: #343434;">课程质量没有问题</span>
</view> -->
<view class="refund flex flex-column" v-if="info.status == 3 && info.detail.feel != 1">
<span class="title">退款金额</span>
<view class="price flex align-items">
<span></span>
<input class="uni-input" focus="true" v-model="price" type="digit" placeholder-class="plasty"
style="height: 60rpx;" />
</view>
<span class="line"></span>
<span class="text">退款金额可修改上限为课程购买价格(损耗百分比:{{loss_proportion}}%)</span>
<u--textarea v-model="reason" placeholder="请输入内容" count maxlength="150" height='100'></u--textarea>
</view>
</view>
<view class="buttonClack" v-if="info.status == 3 || (info.status == 4 && info.serviceorder.status == 1 && info.detail.feel != 1) ">
<view class="flex align-items" style="text-align: center;justify-content: space-around;">
<view style="width: 100%;" v-if="info.status == 3">
<view @click="cancelRefund"
style="margin: 0 auto;border: 2rpx solid #FF5F5F;color: #FF5F5F;width: 80%;height: 80rpx;border-radius: 401rpx;line-height: 80rpx;">
</view>
</view>
<view style="width: 100%;" v-if="info.status == 3">
<view @click="submitRefund"
style="margin: 0 auto;background-color: #008CFF;color: #ffffff;width: 80%;height: 80rpx;border-radius: 80rpx;line-height: 80rpx;">
退 </view>
</view>
<view style="width: 100%;"
v-if="info.serviceorder && info.serviceorder.status == 1 && info.serviceorder.service_stauts == 1">
<view @click="refuseShow = true"
style="margin: 0 auto;background-color: #008CFF;color: #ffffff;width: 80%;height: 80rpx;border-radius: 80rpx;line-height: 80rpx;">
</view>
</view>
<view style="width: 100%;"
v-if="info.serviceorder && info.serviceorder.status == 1 && info.serviceorder.service_stauts == 1">
<view @click="agreeShow = true"
style="margin: 0 auto;background-color: #008CFF;color: #ffffff;width: 80%;height: 80rpx;border-radius: 80rpx;line-height: 80rpx;">
</view>
</view>
</view>
</view>
<view class="buttonClack" v-if="info.detail.feel == 1 && info.status == 3">
<view class="flex align-items" style="text-align: center;justify-content: space-around;">
<view style="width: 100%;">
<view @click="quxiao()"
style="margin: 0 auto;border: 2rpx solid #FF5F5F;color: #FF5F5F;width: 80%;height: 80rpx;border-radius: 401rpx;line-height: 80rpx;">
</view>
</view>
</view>
</view>
<!-- 拒绝 -->
<u-popup :show="refuseShow" mode="center" :zIndex="99999" :custom-style="popupStyle" @close="refuseClose" @open="refuseOpen" :closeable="true">
<view class="center-box flex flex-column">
<span class="title">拒绝理由</span>
<span class="line"></span>
<view style="width: 630rpx;margin-left: 30rpx;margin-top: 31rpx;">
<u--textarea v-model="reasonText" placeholder="请输入内容" count maxlength="150" height='100'></u--textarea>
</view>
<view class="flex align-items btnList" style="justify-content: space-evenly;">
<span style="border-radius: 401rpx;border: 2rpx solid #008CFF;color: #008CFF;" @click.stop="qx()">取消</span>
<span style="border-radius: 401rpx;background: #008CFF;color: #FFFFFF;" @click.stop="next()">确认</span>
</view>
</view>
</u-popup>
<!-- 同意 -->
<u-popup :show="agreeShow" mode="center" :zIndex="99999" :custom-style="popupStyle" @close="agreeClose" @open="agreeOpen" :closeable="true">
<view class="center-box flex flex-column">
<span class="title">同意退款</span>
<span class="line"></span>
<span class="jine">退款金额
<span class="red">(必填)</span>
</span>
<view class="price flex align-items">
<span></span>
<input class="uni-input" focus="true" v-model="reasonPrice" type="digit" placeholder-class="plasty"
style="height: 60rpx;" />
</view>
<span class="line" style="width: 630rpx;margin-left: 30rpx;"></span>
<span class="text">退款金额可修改上限为课程购买价格</span>
<span class="text" style="margin-top: 16rpx;">课程购买价格
<span class="red">{{info.detail.price}}</span>
</span>
<view class="flex align-items btnList" style="justify-content: space-evenly;">
<span style="border-radius: 401rpx;border: 2rpx solid #008CFF;color: #008CFF;" @click.stop="TyQx()">取消</span>
<span style="border-radius: 401rpx;background: #008CFF;color: #FFFFFF;" @click.stop="Tynext()">确认</span>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default {
data() {
return {
price: '',
reason: '',
reasonPrice:'', //
list: '',
refuseShow: false,
agreeShow: false,
id: 0,
info: {},
classes_service_order_id: 0,
reasonText:'',
loss_proportion: '', //
popupStyle: {
width: '690rpx',
// height: '564rpx',
borderRadious:'20rpx',
margin: '0 auto', //
display: 'flex',
justifyContent: 'center',
alignItems: 'center'
},
};
},
onLoad(op) {
this.classes_service_order_id = op.id;
// this.getRefundInfo();
this.getOrderInfo(op.id);
//classes_service_order_id
},
computed: {
},
methods: {
formatTimestamp(timestamp) {
const date = new Date(timestamp * 1000); // 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}`;
},
//
quxiao(){
uni.$u.http.post('/api/school/worker/order/cancel', {
order_no: this.info.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 => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
// 退
cancelRefund() {
uni.navigateBack(1)
},
refuseClose(){
this.refuseShow = false
this.reasonText = ''
},
refuseOpen(){
this.refuseShow = true
},
agreeClose(){
this.agreeShow = false
},
agreeOpen(){
this.agreeShow = true
},
//
qx(){
this.refuseShow = false
this.reasonText = ''
},
TynextQx(){
this.agreeShow = fasle
},
Tynext(){
uni.$u.http.post('/api/school.worker.service_order/shop_confirmation', {
order_no: this.info.serviceorder.id,
price: this.reasonPrice,
status: 'yes'
}).then(res => {
if (res.code == 1) {
this.agreeShow = false
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 => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
// 退
next(){
uni.$u.http.post('/api/school.worker.service_order/shop_confirmation', {
order_no: this.info.serviceorder.id,
reject_reason: this.reasonText,
status: 'no'
}).then(res => {
if (res.code == 1) {
this.refuseShow = false
this.reasonText = ''
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 => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
// 退
submitRefund() {
uni.$u.http.post('/api/school.worker.service_order/create', {
classes_order_id: this.id,
reason: this.reason,
price: this.price
}).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 => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
// 退
getMoney(id) {
uni.$u.http.get('/api/school.worker.service_order/create', {
params: {
classes_order_id: id
}
}).then(res => {
if (res.code == 1) {
this.loss_proportion = res.data.order_data.loss_proportion
if (res.data.order_data.auto_recommend_price <= 0) {
this.price = res.data.order_data.sub_refundprice
} else {
this.price = res.data.order_data.auto_recommend_price
}
// this.price = res.data
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
//
getOrderInfo(id) {
uni.$u.http.get('/api/school/worker/order/detail', {
params: {
id: id
}
}).then(res => {
if (res.code == 1) {
this.info = res.data.detail;
if (this.info.serviceorder && (this.info.status == 4 && this.info.serviceorder.status == 1 )) {
if (res.data.detail.serviceorder.auto_recommend_price <= 0) {
this.reasonPrice = res.data.detail.serviceorder.sub_refundprice
} else {
this.reasonPrice = res.data.detail.serviceorder.auto_recommend_price
}
}
if (res.data.detail.status == 3) {
this.id = res.data.detail.id
this.getMoney(res.data.detail.id)
}
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
});
},
callPhone(phone) {
uni.makePhoneCall({
phoneNumber: phone
})
}
}
}
</script>
<style lang="scss" scoped>
page {
background-color: #F1F2F8;
}
.buttonClack {
padding-top: 20rpx;
position: fixed;
bottom: 0;
width: 100%;
height: 100rpx;
background-color: #ffffff;
padding-bottom: calc(env(safe-area-inset-bottom));
box-shadow: 0rpx -6rpx 12rpx 0rpx rgba(111, 190, 255, 0.1);
}
.item-spacing {
padding-bottom: 30rpx;
}
.w-100 {
width: 100%;
}
.flex {
display: flex;
}
.justify-center {
justify-content: center;
}
.space-between {
justify-content: space-between;
}
.align-items {
align-items: center;
}
.flex-column {
flex-flow: column;
}
.justify-start {
justify-content: start;
}
.mar-top-30 {
margin-top: 30rpx;
}
.refund {
padding: 15rpx;
.title {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #343434;
}
.price {
margin-top: 32rpx;
height: 53rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 62rpx;
color: #FF5F5F;
}
input {
height: 53rpx;
}
.line {
width: 642rpx;
height: 1rpx;
background: #D9D9D9;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 17rpx 0 7rpx 0;
}
.text {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #7A7A7A;
margin-bottom: 42rpx;
}
}
::v-deep.plasty {
height: 53rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 62rpx;
color: #FF5F5F;
}
.center-box{
width: 690rpx;
.title{
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 42rpx;
color: #008CFF;
padding: 30rpx;
}
.text{
padding: 0 30rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #7A7A7A;
}
.jine{
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #343434;
}
.line{
width: 690rpx;
height: 1rpx;
background: #D9D9D9;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 11rpx 31rpx 0 0;
}
.price {
margin-top: 32rpx;
height: 53rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 62rpx;
color: #FF5F5F;
padding: 0 30rpx;
width: 630rpx;
}
.jine{
padding: 30rpx;
}
.red{
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FF5F5F;
}
input {
height: 53rpx;
}
.btnList{
padding: 30rpx;
span{
width: 306rpx;
height: 80rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 34rpx;
display: flex;
justify-content: center;
align-items: center;
}
}
}
.line-row{
width: 630rpx;
height: 1rpx;
background: #D9D9D9;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 32rpx 0 38rpx 0;
}
</style>

View File

@ -36,6 +36,7 @@
<image src="@/static/index/upload1.png" mode="widthFix"
style="width: 44rpx;height: 44rpx;" />
<span class="texts">添加图片</span>
<!-- <span>{{fileList1[0].url}}</span> -->
</view>
</u-upload>
</view>
@ -60,18 +61,6 @@
placeholder="请输入详细地址/楼、门牌号"></u--textarea>
</view>
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">
<span style="color: #3D3D3D;">*</span>
报名时间
</span>
<span class="row-right" @click="birthShowHidden()">
<input type="text" placeholder="请选择报名时间" class="input" disabled="true"
v-model="form.sign_time" placeholder-class="plasty" />
<u-icon name="arrow-right" color="#323232"></u-icon>
</span>
</view>
<view class="row flex align-items" style="margin: 30rpx 0;">
<view class="label flex align-items" style="width: auto;">
@ -91,6 +80,21 @@
</view>
<view class="first flex flex-column align-items justify-start" style="margin-top: 20rpx;">
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">
<span style="color: #3D3D3D;">*</span>
报名时间
</span>
<span class="row-right" @click="birthShowHidden()">
<text
:style="form.sign_time == '' ? 'font-size: 28rpx;color: #9C9C9C;' : 'font-size: 28rpx;color: #3D3D3D;'">{{
form.sign_time == '' ? '请选择报名时间' : form.sign_time }}</text>
<!-- <input type="text" placeholder="请选择报名时间" class="input" disabled="true"
v-model="form.sign_time" placeholder-class="plasty" /> -->
<u-icon name="arrow-right" color="#323232"></u-icon>
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">
<span style="color: #3D3D3D;">*</span>活动分类
@ -134,7 +138,9 @@
<view v-if="qunQrcode == ''" style="color: #9C9C9C;font-size: 28rpx;">未上传</view>
<!-- <view v-if="qunQrcode != ''" style="color: #FF4810;font-size: 28rpx;">已上传</view> -->
<view v-if="qunQrcode != ''" style="color: #FF4810;font-size: 28rpx;">
<image :src="qunQrcode.url" style="width: 70rpx;height: 70rpx;"></image>
<!-- <image :src="qunQrcode.url" style="width: 70rpx;height: 70rpx;"></image> -->
<image :src="QunQrcode1.url" style="width: 70rpx;height: 70rpx;"></image>
</view>
<u-icon name="arrow-right" color="#323232"></u-icon>
</view>
@ -180,7 +186,7 @@
</view>
</view>
</view>
<span class="line-row"></span>
<!-- <span class="line-row"></span> -->
</view>
</scroll-view>
@ -506,21 +512,23 @@
times_sine_int: '', //
qunQrcode: '',
QunQrcode1: '', //
boxHeight: 0,
cardShow: false,
cardStatus: 0,
id: null,
original_activity_id: null,
type: null,
tempDefaultTime: null,
};
},
onLoad(options) {
console.log('options', options.id,options.original_activity_id);
console.log('options', options.id, options.original_activity_id);
this.id = options.id
this.original_activity_id = options.original_activity_id
this.type = options.type
console.log('this.id', this.id);
console.log('this.original_activity_id ', this.original_activity_id );
console.log('this.original_activity_id ', this.original_activity_id);
console.log('this.type', this.type);
if (this.id || this.original_activity_id) {
this.agree = true
@ -548,7 +556,8 @@
filters: {
formatTimestamp(value) {
if (!value) return '';
const date = new Date(value * 1000); //
// const date = new Date(value * 1000); //
const date = new Date(new Date().getTime() + 8 * 60 * 60 * 1000)
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 01
const day = String(date.getDate()).padStart(2, '0'); //
@ -568,6 +577,9 @@
}).then(res => {
if (res.code == 1) {
this.form = res.data.detail
this.price = this.form.price
this.priceDo()
this.form.content = this.form.content.replace(/<[^>]+>/g, ''); // : ""
this.value_slide = res.data.detail.join_info.percent;
const idBqSet = new Set(this.form.cate_ids);
const bqArray = this.bqList.reduce((acc, obj) => {
@ -601,13 +613,30 @@
status: 'success',
message: ''
})
this.QunQrcode1 = this.qunQrcode
// formatDate(dateStr) {
// if (!dateStr) return '';
// return dateStr.slice(5, 16);
// }
// this.times_b_int = this.form.start_time_text
// this.times_e_int = this.form.end_time_text
// res.data.detail
const time_start = this.form.start_time_text.slice(5, 16)
const time_end = this.form.end_time_text.slice(5, 16)
this.form.time = time_start + ' - ' + time_end
const signTime_start = this.form.sign_start_time_text.slice(5, 16)
const signTime_end = this.form.sign_end_time_text.slice(5, 16)
this.form.sign_time = signTime_start + ' - ' + signTime_end
console.log('qunQrcode', this.qunQrcode);
if(!this.original_activity_id){
if (!this.original_activity_id) {
this.times_b_int = this.form.start_time_text
this.times_e_int = this.form.end_time_text
this.times_sinb_int = this.form.sign_start_time_text
this.times_sine_int = this.form.sign_end_time_text
}else{
} else {
this.times_b_int = ''
this.times_e_int = ''
this.times_sinb_int = ''
@ -615,7 +644,7 @@
this.form.sign_time = ''
this.form.time = ''
}
if(this.type == 2){
if (this.type == 2) {
this.form.title = ''
}
@ -632,7 +661,7 @@
},
priceDo() {
var price = this.price;
console.log(price);
console.log('priceDo price:', price);
if (price == '' || price == null || price == undefined || price == 0) {
this.priceName = '免费';
this.priceShow = false;
@ -662,7 +691,7 @@
this.form.refund_idn = '不支持自动退款';
},
Time(val) {
console.log(val);
console.log('Time_val:', val);
},
openUrl(url) {
uni.navigateTo({
@ -671,7 +700,7 @@
},
getCardInfo() {
uni.$u.http.get('/api/school.real_name/info').then(res => {
console.log(res);
console.log('getCardInfo res:', res);
this.cardShow = res.data.status != 1 ? true : false;
this.cardStatus = res.data.status;
})
@ -689,15 +718,21 @@
// },
async uploadQun(item) {
const result = await this.uploadFilePromise(item.file.url, 'user');
console.log(result);
console.log('uploadQun result:', result);
this.qunQrcode = result;
console.log('qunQrcode', this.qunQrcode);
this.QunQrcode1 = this.qunQrcode
const baseUrl = 'https://qingchunta.hschool.com.cn'; //
this.QunQrcode1 = {
url: baseUrl + result // URL
};
console.log('QunQrcode1', this.QunQrcode1);
if (result.code != 1) {
uni.showToast({
title: result.msg,
icon: 'none',
duration: 2000
});
// uni.showToast({
// title: result.msg,
// icon: 'none',
// duration: 2000
// });
return;
} else {
// uni.$u.http.post('/api/school.new_activity/edit_qrcode', {
@ -870,7 +905,7 @@
},
//
handleScroll() {
console.log(123)
console.log('handleScroll:', 123)
this.agreeShow = true
},
getTime() {
@ -884,6 +919,7 @@
},
dateShowHidden() {
this.hdIndex = 1;
// this.tempDefaultTime = new Date(new Date().getTime() + 8 * 60 * 60 * 1000);
this.dateShow = true;
},
birthShowHidden() {
@ -893,8 +929,9 @@
//
datefirm(e, index) {
console.log(e)
console.log('活动开始时间', e, e.time)
var time = e.time;
// var time = this.tempDefaultTime || e.time
if (index == 1) {
//this.form.date = time;
this.times_b = time;
@ -905,6 +942,7 @@
//this.dateShow = false
this.form.time = this.times_b + ' - ' + this.times_e
}
this.tempDefaultTime = null; // 使
//this.dateShow1 = true
//this.form.date = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss');
@ -916,6 +954,9 @@
hdnext() {
//
const currentTime = dayjs().format('YYYY-MM-DD HH');
// const currentTime = new Date(new Date().getTime() + 8 * 60 * 60 * 1000)
console.log('currentTime', currentTime);
var b = currentTime + ':00';
if (this.times_b == '' || this.times_b == null) {
//this.times_b
@ -1010,18 +1051,18 @@
// this.times_sinb = this.dateWeeks(e.value / 1000);
// this.birthShow = false
// this.birthShow1 = true
console.log('报名时间:',e)
console.log('报名时间:', e)
var time = e.time;
if (index == 1) {
//this.form.date = time;
this.times_sinb = time;
this.times_sinb_int = time;
console.log('报名时间11',e)
console.log('报名时间11', e)
} else {
this.times_sine = time;
this.times_sine_int = time;
//this.dateShow = false
console.log('报名时间22',this.times_sine,this.times_sine_int)
console.log('报名时间22', this.times_sine, this.times_sine_int)
this.form.sign_time = this.times_sinb + ' - ' + this.times_sine
}
},
@ -1157,18 +1198,18 @@
});
},
choose() {
console.log(11111)
console.log('choose', 11111)
const that = this
uni.chooseLocation({
success: function(res) {
console.log(res)
console.log('choose res:', res)
that.form.address = res.name
// that.form.address_detail = res.address
that.form.latitude = res.latitude
that.form.longitude = res.longitude
},
fail: function(rot) {
console.log(rot)
console.log('choose rot:', rot)
}
});
},
@ -1184,9 +1225,6 @@
},
oversize(e) {
this.$u.toast("请传1MB以内大小的图片");
return false;
@ -1204,16 +1242,29 @@
if (name === '1') {
console.log('删除照片?');
//
// this.list1 = this.fileList1.length > 0 ? this.fileList1[0].url : '';
this.list1 = this.fileList1.map(item => item.url).join(',');
console.log('Updated list1:', this.list1);
// if (this.id || this.type == 1 || this.type == 2) {
// this.list1 = this.fileList1.map(url => {
// // 使URL
// // const urlObj = new URL(url);
// const urlObj = url.url.split('qingchunta.hschool.com.cn')[1]
// console.log('urlObj', urlObj);
// return urlObj;
// }).join(',');
// } else {
// this.list1 = this.fileList1.map(item => item.url).join(',');
// }
console.log('Updated 删除图片 fileList1:', this.fileList1);
console.log('Updated 删除图片 list1:', this.list1);
}
// list
let list = this[`list${name}`];
console.log('删除照片1', list);
if (!Array.isArray(list)) {
console.warn(`list${name} is not an array, skipping splice operation`);
} else {
@ -1226,8 +1277,28 @@
},
//
async afterRead(event) {
let lists = [].concat(event.file);
console.log('afterRead', this.fileList1);
console.log('afterRead', this.list1);
// this.fileList1 = this.fileList1.forEach(url => {
// console.log('url',url);
// url.url = url.url.split('qingchunta.hschool.com.cn')[1]
// });
// console.log('afterRead222', this.fileList1);
const lists = [].concat(event.file);
console.log('新增照片List1', lists);
if (this.id || this.type == 1 || this.type == 2) {
const lists = this.fileList1.concat(event.file);
console.log('id type', lists);
} else {
const lists = [].concat(event.file);
console.log('新增照片List1', lists);
}
console.log('新增照片 list:', lists);
let fileListLen = this[`fileList${event.name}`].length;
console.log('新增照片List2', fileListLen);
let categoryMap = [{
category: 'user'
},
@ -1254,6 +1325,7 @@
message: '上传中'
});
});
console.log('新增照片List3', lists);
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url, categoryMap[event.name - 1].category);
if (result == '') {
@ -1270,8 +1342,30 @@
fileListLen++;
// list
if (event.name === '1') {
console.log('event.name', this.fileList1);
// this.list1 = this.fileList1[0]?.url || ''; //
this.list1 = this.fileList1.map(item => item.url).join(',');
// for (let i = 0; i < this.fileList1.length; i++) {
// if (/^https?:\/\//i.test(this.fileList1[i].url)) {
// this.fileList1[i].url = this.fileList1[i].url.replace(/^https?:\/\/[^/]+/, '');
// console.log('this.fileList1[i].url', this.fileList1[i].url);
// }
// }
if (this.id || this.type == 1 || this.type == 2) {
this.list1 = this.fileList1.map(url => {
// 使URL
// const urlObj = new URL(url);
const urlObj = url.url.split('qingchunta.hschool.com.cn')[1]
console.log('urlObj', urlObj);
return urlObj;
});
} else {
this.list1 = this.fileList1.map(item => item.url);
}
console.log('this.fileList1', this.fileList1);
this.list1 = this.fileList1.map(item => item.url);
console.log('this.list1', this.list1);
}
}
@ -1292,7 +1386,7 @@
},
success: (res) => {
var js = JSON.parse(res.data);
console.log(js.data.errcode);
console.log('js.data.errcode:', js.data.errcode);
if (js.data.errcode == '30002') {
uni.showToast({
title: '请登录...',
@ -1323,7 +1417,7 @@
if (res.code == 1) {
this.apply_info = res.data.apply_info
this.State = res.data.type
console.log(res.data.type)
console.log('res.data.type:', res.data.type)
if (res.data.auth_status == 2) {
this.status = 2
this.reason = res.data.reason
@ -1481,7 +1575,7 @@
let hdtime = this.times_b_int + ' - ' + this.times_e_int;
let bmtime = this.times_sinb_int + ' - ' + this.times_sine_int;
console.log('formparams', this.form, this.form.cate_ids);
console.log('images',this.form.images);
console.log('images', this.form.images);
params = {
title: this.form.title,
cate_ids: this.form.cate_ids,
@ -1498,21 +1592,31 @@
address: this.form.address,
address_detail: this.form.address_detail,
image: this.qunQrcode,
ids:this.id
ids: this.id
}
console.log('params00', params);
console.log('params01', this.id );
console.log('params01', this.original_activity_id );
console.log('params01', this.id);
console.log('params01', this.original_activity_id);
//
if (this.id) {
console.log('编辑',params.images);
params.images = params.images.map(url => {
// 使URL
// const urlObj = new URL(url);
const urlObj = url.split('qingchunta.hschool.com.cn')[1]
console.log('urlObj', urlObj);
return urlObj;
}).join(',');
console.log('编辑', params.images);
for (let i = 0; i < params.images.length; i++) {
if (/^https?:\/\//i.test(params.images[i])) {
params.images[i] = params.images[i].replace(/^https?:\/\/[^/]+/, '');
console.log('params.images[i].url', params.images[i]);
}else {
params.images[i] = params.images[i]
}
}
console.log('params.images排查数组的url的路径', params.images);
params.images = params.images.join(',');
// params.images = params.images.map(url => {
// // 使URL
// // const urlObj = new URL(url);
// const urlObj = url.split('qingchunta.hschool.com.cn')[1]
// console.log('urlObj', urlObj);
// return urlObj;
// }).join(',');
console.log('params', params.images);
// params.image = new URL(params.image).pathname ;
// params.image = params.image.replace(/^https?:\/\/[^/]+/, '')
@ -1558,7 +1662,7 @@
}
uni.showToast({
title: '发布成功!',
title: '修改成功!',
icon: 'none',
duration: 2000,
});
@ -1570,11 +1674,11 @@
}, 1000);
} else {
this.$u.toast(res.msg);
// uni.showToast({
// title: res.msg,
// icon: 'none',
// duration: 2000
// });
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
}).catch(error => {
uni.showToast({
@ -1584,16 +1688,24 @@
});
});
} else {
console.log('新增');
if(this.type == 1 || this.type == 2) {
params.images = params.images.map(url => {
// 使URL
// const urlObj = new URL(url);
const urlObj = url.split('qingchunta.hschool.com.cn')[1]
console.log('urlObj', urlObj);
return urlObj;
}).join(',');
console.log('新增', params.images);
if (this.type == 1 || this.type == 2) {
console.log('新增11', params.images);
for (let j = 0; j < params.images.length; j++) {
if (/^https?:\/\//i.test(params.images[j])) {
params.images[j] = params.images[j].replace(/^https?:\/\/[^/]+/, '');
console.log('params.images[i].url', params.images[j]);
}
}
params.images = params.images.join(',')
console.log('params.images排查数组的url的路径', params.images);
// params.images = params.images.map(url => {
// // 使URL
// // const urlObj = new URL(url);
// const urlObj = url.split('qingchunta.hschool.com.cn')[1]
// console.log('urlObj', urlObj);
// return urlObj;
// }).join(',');
console.log('params', params.images);
// params.image = new URL(params.image).pathname ;
// params.image = params.image.replace(/^https?:\/\/[^/]+/, '')

View File

@ -33,7 +33,7 @@
<u-form-item label="发票内容" prop="">
<view class="typeBOx" style="width: 305px;justify-content: space-between;">
<view class="typeImgs" @click="explainShow = true">
<image style="width: 44rpx;height: 44rpx;" src="/static/invoice/conRecord.png"
<image style="width: 44rpx;height: 44rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/conRecord.png"
mode=""></image>
</view>
<view class="normalInv">

View File

@ -52,7 +52,7 @@
<u-form-item label="发票内容" prop="">
<view class="typeBOx" style="width: 305px;justify-content: space-between;">
<view class="typeImgs" @click="explainShow = true">
<image style="width: 44rpx;height: 44rpx;" src="/static/invoice/conRecord.png"
<image style="width: 44rpx;height: 44rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/conRecord.png"
mode=""></image>
</view>
<view class="normalInv">
@ -187,7 +187,7 @@
<view class="textSec">{{item.tax_id}}</view>
</view>
<view class="manageEdit">
<image style="width: 50rpx;height: 50rpx;" src="/static/invoice/manageEdit.png"
<image style="width: 50rpx;height: 50rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/manageEdit.png"
mode=""></image>
</view>
</view>
@ -205,7 +205,7 @@
</view>
</view>
<view class="manageEdit">
<image style="width: 50rpx;height: 50rpx;" src="/static/invoice/manageEdit.png"
<image style="width: 50rpx;height: 50rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/manageEdit.png"
mode=""></image>
</view>
</view>

View File

@ -142,7 +142,7 @@
<view class="manageList" v-else>
<!-- 信息提醒 -->
<view class="manageRecord">
<image style="width: 36rpx;height: 36rpx;" src="/static/invoice/manageRecord.png" mode="">
<image style="width: 36rpx;height: 36rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/manageRecord.png" mode="">
</image>
<text style="margin-left: 10rpx;">抬头信息仅用于开具发票请勿用于转账等其他用途谨防受骗</text>
</view>
@ -160,7 +160,7 @@
<view class="textSec">{{item.tax_id}}</view>
</view>
<view class="manageEdit" @click="editHead(item.id)">
<image style="width: 50rpx;height: 50rpx;" src="/static/invoice/manageEdit.png" mode="">
<image style="width: 50rpx;height: 50rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/manageEdit.png" mode="">
</image>
</view>
</view>
@ -178,7 +178,7 @@
</view>
</view>
<view class="manageEdit">
<image style="width: 50rpx;height: 50rpx;" src="/static/invoice/manageEdit.png" mode=""></image>
<image style="width: 50rpx;height: 50rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/manageEdit.png" mode=""></image>
</view>
</view>
</view>-->

View File

@ -2,10 +2,10 @@
<!-- <view>查看发票</view> -->
<view class="container">
<view class="info-top">
<image style="height: 122px;width: 294px;position: absolute;right: 5%;top:0%" src="/static/invoice/invInfoBk.png"></image>
<image style="height: 122px;width: 294px;position: absolute;right: 5%;top:0%" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/invInfoBk.png"></image>
<view class="info-status">
<view class="statusFir">
<image style="width: 32rpx;height: 32rpx;" src="/static/invoice/statusInv.png"></image>
<image style="width: 32rpx;height: 32rpx;" src="https://naweigetetest2.hschool.com.cn/miniapp/invoice/statusInv.png"></image>
<view style="margin-left: 20rpx;">{{detailAny.invoice_status_text}}</view>
</view>
<view class="statusSec" style="margin-top: 20rpx;">已开发票金额: {{detail.price}}</view>

View File

@ -221,18 +221,18 @@
"navigationBarTitleText": "邀请入驻"
}
},
{
"path": "my/management",
"style": {
"navigationBarTitleText": "课程管理"
}
},
{
"path": "my/ac-management",
"style": {
"navigationBarTitleText": "活动管理"
}
},
// {
// "path": "my/management",
// "style": {
// "navigationBarTitleText": "课程管理"
// }
// },
// {
// "path": "my/ac-management",
// "style": {
// "navigationBarTitleText": "活动管理"
// }
// },
{
"path": "my/help",
"style": {
@ -246,25 +246,25 @@
}
},
{
"path": "my/addManagement",
"style": {
"navigationBarTitleText": "新增课程"
}
},
{
"path": "my/mentList",
"style": {
"navigationBarTitleText": "订单管理"
}
},
// {
// "path": "my/addManagement",
// "style": {
// "navigationBarTitleText": "新增课程"
// }
// },
// {
// "path": "my/mentList",
// "style": {
// "navigationBarTitleText": "订单管理"
// }
// },
{
"path": "my/refund",
"style": {
"navigationBarTitleText": "发起退款"
}
},
// {
// "path": "my/refund",
// "style": {
// "navigationBarTitleText": "发起退款"
// }
// },
{
"path": "center/detail",
"style": {
@ -285,19 +285,19 @@
"navigationBarTitleText": "报名信息"
}
},
{
"path": "center/MechanismDetail",
"style": {
"navigationBarTitleText": "机构详情"
}
},
// {
// "path": "center/MechanismDetail",
// "style": {
// "navigationBarTitleText": "机构详情"
// }
// },
{
"path": "center/orderDetail",
"style": {
"navigationBarTitleText": "订单详情"
}
},
// {
// "path": "center/orderDetail",
// "style": {
// "navigationBarTitleText": "订单详情"
// }
// },
{
"path": "center/applyDetail",
"style": {

View File

@ -59,18 +59,6 @@
placeholder="请输入详细地址/楼、门牌号"></u--textarea>
</view>
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">
<span style="color: #3D3D3D;">*</span>
报名时间
</span>
<span class="row-right" @click="birthShowHidden()">
<input type="text" placeholder="请选择报名时间" class="input" disabled="true"
v-model="form.sign_time" placeholder-class="plasty" />
<u-icon name="arrow-right" color="#323232"></u-icon>
</span>
</view>
<view class="row flex align-items" style="margin: 30rpx 0;">
<view class="label flex align-items" style="width: auto;">
@ -90,6 +78,21 @@
</view>
<view class="first flex flex-column align-items justify-start" style="margin-top: 20rpx;">
<view class="row flex align-items" style="margin: 25rpx 0;">
<span class="label flex align-items ">
<span style="color: #3D3D3D;">*</span>
报名时间
</span>
<span class="row-right" @click="birthShowHidden()">
<text
:style="form.sign_time == '' ? 'font-size: 28rpx;color: #9C9C9C;' : 'font-size: 28rpx;color: #3D3D3D;'">{{
form.sign_time == '' ? '请选择报名时间' : form.sign_time }}</text>
<!-- <input type="text" placeholder="请选择报名时间" class="input" disabled="true"
v-model="form.sign_time" placeholder-class="plasty" /> -->
<u-icon name="arrow-right" color="#323232"></u-icon>
</span>
</view>
<span class="line-row"></span>
<view class="row flex align-items" style="margin-top: 25rpx;">
<span class="label flex align-items ">
<span style="color: #3D3D3D;">*</span>活动分类
@ -151,8 +154,7 @@
v-model.number="form.stock" />
</span> -->
<span class="row-right">
<input type="number" placeholder="请填写活动人数" class="input"
v-model="form.stock" />
<input type="number" placeholder="请填写活动人数" class="input" v-model="form.stock" />
</span>
</view>
<span class="line-row"></span>
@ -368,11 +370,12 @@
<view style="padding: 0rpx 30rpx;">
<view style="padding: 30rpx 0rpx;border: 2px solid #EEEEEE;border-radius: 20rpx;">
<view>
<input :focus="priceShow" :maxlength="5" :cursor-spacing="300" type="digit" placeholder="请输入" v-model="price"
style="text-align: center;" />
<input :focus="priceShow" :maxlength="5" :cursor-spacing="300" type="digit"
placeholder="请输入" v-model="price" style="text-align: center;" />
</view>
</view>
<view style="font-size: 24rpx;color: #FF4810;margin-top: 20rpx;">注意活动金额为0时将不支持自动退款若金额设置为1或以上可设置其他退款政策</view>
<view style="font-size: 24rpx;color: #FF4810;margin-top: 20rpx;">
注意活动金额为0时将不支持自动退款若金额设置为1或以上可设置其他退款政策</view>
</view>
<!-- <view style="margin-top: 40rpx;">
<view class="btn_1" @click="priceDo" style="margin: 0 auto;">确认</view>
@ -398,13 +401,13 @@
</template>
<script>
import dayjs from 'dayjs';
import longDate from "@/components/long-date/long-date.vue"
import {
import dayjs from 'dayjs';
import longDate from "@/components/long-date/long-date.vue"
import {
dateWeek,
dateWeekData
} from '../../utils/dateFormat'
export default {
} from '../../utils/dateFormat'
export default {
components: {
longDate
},
@ -519,7 +522,7 @@ export default {
// this.tofb();
// this.searchStatus()
uni.hideShareMenu();
uni.hideShareMenu();
this.getAgreement()
this.getBqList();
this.getrefund_list();
@ -549,7 +552,7 @@ uni.hideShareMenu();
priceDo() {
var price = this.price;
console.log(price);
if(price=='' || price==null || price==undefined || price==0){
if (price == '' || price == null || price == undefined || price == 0) {
this.priceName = '免费';
this.priceShow = false;
return;
@ -756,13 +759,30 @@ uni.hideShareMenu();
const formattedDate = `${year}-${month}-${day}`;
return formattedDate;
},
// methods8
getCurrentTimePlus8Hours() {
const now = new Date();
now.setHours(now.getHours() + 8);
return now;
},
dateShowHidden() {
this.hdIndex = 1;
this.dateShow = true;
// 8
const defaultTime = this.getCurrentTimePlus8Hours();
// long-datesetDefaultTime
this.$nextTick(() => {
this.$refs.longDate.setDefaultTime(defaultTime);
});
},
birthShowHidden() {
this.bmIndex = 1;
this.birthShow = true;
// 8
const defaultTime = this.getCurrentTimePlus8Hours();
this.$nextTick(() => {
this.$refs.birthDate.setDefaultTime(defaultTime);
});
},
//
@ -923,6 +943,7 @@ uni.hideShareMenu();
},
bmok() {
const currentTime = dayjs().format('YYYY-MM-DD HH');
console.log('currentTime', currentTime);
var b = currentTime + ':00';
if (this.times_sine == '' || this.times_sine == null) {
@ -1032,14 +1053,14 @@ uni.hideShareMenu();
console.log(11111)
const that = this
uni.chooseLocation({
success: function (res) {
success: function(res) {
console.log(res)
that.form.address = res.name
// that.form.address_detail = res.address
that.form.latitude = res.latitude
that.form.longitude = res.longitude
},
fail: function (rot) {
fail: function(rot) {
console.log(rot)
}
});
@ -1355,7 +1376,7 @@ uni.hideShareMenu();
content: this.form.content,
// refund_id: 1,
refund_id: this.form.refund_id,
price: this.form.price==''?0:this.form.price,
price: this.form.price == '' ? 0 : this.form.price,
stock: this.form.stock,
sign_time: bmtime,
time: hdtime,
@ -1375,7 +1396,7 @@ uni.hideShareMenu();
this.list = [];
this.price = '';
this.priceName = '免费';
this.qunQrcode='';
this.qunQrcode = '';
this.form = {
cate_ids: '',
@ -1405,7 +1426,7 @@ uni.hideShareMenu();
icon: 'none',
duration: 2000,
});
setTimeout(function () {
setTimeout(function() {
uni.navigateTo({
url: "/packageA/my/orderList"
})
@ -1428,18 +1449,18 @@ uni.hideShareMenu();
}
}
}
}
</script>
<style lang="scss" scoped>
.allbg {
.allbg {
position: fixed;
height: 100%;
width: 100%;
}
}
/* 添加新样式用于内部可滚动区域 */
.scroll-container {
/* 添加新样式用于内部可滚动区域 */
.scroll-container {
margin: 0 auto;
position: absolute;
top: 0;
@ -1452,15 +1473,15 @@ uni.hideShareMenu();
/* 允许内容溢出 */
margin-top: 200rpx;
margin-bottom: 420rpx;
}
}
.title_logo {
.title_logo {
width: 690rpx;
margin-top: 110rpx;
display: flex;
}
}
.backImg {
.backImg {
height: 100vh;
// background: linear-gradient(to bottom, #F1F2F8 0%, #F1F2F8 50%, #FFFFFF 100%);
width: 750rpx;
@ -1468,41 +1489,41 @@ uni.hideShareMenu();
background-image: url("https://naweigetetest2.hschool.com.cn/dyqc/bgx2.png");
background-size: 100%;
background-repeat: no-repeat;
}
}
.w-100 {
.w-100 {
width: 100%;
}
}
.flex {
.flex {
display: flex;
}
}
.justify-center {
.justify-center {
justify-content: center;
}
}
.space-between {
.space-between {
justify-content: space-between;
}
}
.align-items {
.align-items {
align-items: center;
}
}
.flex-column {
.flex-column {
flex-flow: column;
}
}
.justify-start {
.justify-start {
justify-content: start;
}
}
.mar-top-30 {
.mar-top-30 {
margin-top: 30rpx;
}
}
.box {
.box {
width: 690rpx;
.title {
@ -1625,9 +1646,9 @@ uni.hideShareMenu();
line-height: 32rpx;
}
}
}
}
.textarea_fb {
.textarea_fb {
::v-deep .u-textarea {
height: 100%;
padding: 0;
@ -1640,15 +1661,15 @@ uni.hideShareMenu();
font-size: 24rpx;
color: #9C9C9C;
}
}
}
.shenfen ::v-deep .u-upload .u-upload__wrap__preview__image {
.shenfen ::v-deep .u-upload .u-upload__wrap__preview__image {
width: 196rpx !important;
height: 196rpx !important;
}
}
.bottom {
.bottom {
width: 750rpx;
height: 230rpx;
background: #FFFFFF;
@ -1671,9 +1692,9 @@ uni.hideShareMenu();
margin: 0 auto;
margin-top: 30rpx;
}
}
}
.inputl {
.inputl {
text-align: left;
font-family: PingFang SC, PingFang SC;
font-size: 30rpx;
@ -1681,32 +1702,32 @@ uni.hideShareMenu();
color: #343434;
line-height: 32rpx;
width: 500rpx;
}
}
.input {
.input {
text-align: right;
font-family: PingFang SC, PingFang SC;
font-size: 28rpx;
color: #343434;
line-height: 32rpx;
width: 450rpx;
}
}
.shenfen ::v-deep .u-transition.data-v-39e33bf2.vue-ref.u-fade-enter-to.u-fade-enter-active:not(:first-child) {
.shenfen ::v-deep .u-transition.data-v-39e33bf2.vue-ref.u-fade-enter-to.u-fade-enter-active:not(:first-child) {
margin-top: 20rpx;
}
}
.popup {
.popup {
// width: 690rpx;
height: 950rpx;
margin-top: 40rpx;
}
}
.popup-footer {
.popup-footer {
display: flex;
justify-content: center;
align-items: center;
@ -1737,37 +1758,37 @@ uni.hideShareMenu();
font-weight: 400;
font-size: 36rpx;
}
}
}
//
// ::v-deep ::-webkit-scrollbar {
// /**/
// width: 4px !important;
// height: 1px !important;
// overflow: auto !important;
// background: #ccc !important;
// -webkit-appearance: auto !important;
// display: block;
// }
//
// ::v-deep ::-webkit-scrollbar {
// /**/
// width: 4px !important;
// height: 1px !important;
// overflow: auto !important;
// background: #ccc !important;
// -webkit-appearance: auto !important;
// display: block;
// }
// ::v-deep ::-webkit-scrollbar-thumb {
// /**/
// border-radius: 10px !important;
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
// background: #7b7979 !important;
// }
// ::v-deep ::-webkit-scrollbar-thumb {
// /**/
// border-radius: 10px !important;
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
// background: #7b7979 !important;
// }
// ::v-deep ::-webkit-scrollbar-track {
// /**/
// // box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
// // border-radius: 10px !important;
// background: #FFFFFF !important;
// }
// ::v-deep ::-webkit-scrollbar-track {
// /**/
// // box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
// // border-radius: 10px !important;
// background: #FFFFFF !important;
// }
.textarea_mph {
.textarea_mph {
::v-deep .u-textarea {
height: 100%;
padding: 20rpx;
@ -1782,9 +1803,9 @@ uni.hideShareMenu();
font-size: 24rpx;
color: #9C9C9C;
}
}
}
.popup_bq {
.popup_bq {
display: flex;
flex-direction: column;
align-items: center;
@ -1857,9 +1878,9 @@ uni.hideShareMenu();
}
}
}
.popup_tkall {
.popup_tkall {
// height: 1100rpx;
z-index: 100;
@ -1926,9 +1947,9 @@ uni.hideShareMenu();
font-weight: 400;
font-family: PingFang SC, PingFang SC;
}
}
}
.btn_1 {
.btn_1 {
width: 90%;
height: 80rpx;
background: #323232;
@ -1941,9 +1962,9 @@ uni.hideShareMenu();
text-align: center;
margin-top: 40rpx;
z-index: 100;
}
}
.btn_2 {
.btn_2 {
width: 50%;
height: 80rpx;
background: #323232;
@ -1956,9 +1977,9 @@ uni.hideShareMenu();
text-align: center;
margin-top: 40rpx;
z-index: 100;
}
}
.btn_3 {
.btn_3 {
width: 50%;
height: 80rpx;
background: #E2E2E2;
@ -1971,9 +1992,9 @@ uni.hideShareMenu();
text-align: center;
margin-top: 40rpx;
z-index: 100;
}
}
.btn_4 {
.btn_4 {
width: 50%;
height: 80rpx;
background: #ffffff;
@ -1987,5 +2008,5 @@ uni.hideShareMenu();
text-align: center;
margin-top: 40rpx;
z-index: 100;
}
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB