1、分包packageA中删除部分不使用的页面
2、修改、重发的图片逻辑,价格、文本域接富文本内容、调整报名时间位置
This commit is contained in:
parent
ded0c3cbd4
commit
ec699798bf
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name" : "多样青春活动版",
|
||||
"appid" : "__UNI__F09A3D9",
|
||||
"appid" : "__UNI__BD0139D",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
|
@ -735,12 +735,7 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
// 机构详情
|
||||
toMeDetail() {
|
||||
uni.navigateTo({
|
||||
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
close() {
|
||||
this.type = 0
|
||||
|
@ -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
@ -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>
|
@ -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({
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
||||
@ -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;
|
||||
|
@ -511,12 +511,7 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
// 机构详情
|
||||
toMeDetail() {
|
||||
uni.navigateTo({
|
||||
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
close() {
|
||||
this.type = 0
|
||||
|
@ -605,12 +605,7 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
// 机构详情
|
||||
toMeDetail() {
|
||||
uni.navigateTo({
|
||||
url: "/packageA/center/MechanismDetail?id=" + this.detail.shop.id
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
close() {
|
||||
this.type = 0
|
||||
|
@ -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">
|
||||
身份信息
|
||||
|
@ -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>
|
@ -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,12 +512,14 @@
|
||||
times_sine_int: '', //结束时间
|
||||
|
||||
qunQrcode: '',
|
||||
QunQrcode1: '', //仅用于页面展示
|
||||
boxHeight: 0,
|
||||
cardShow: false,
|
||||
cardStatus: 0,
|
||||
id: null,
|
||||
original_activity_id: null,
|
||||
type: null,
|
||||
tempDefaultTime: null,
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
@ -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'); // 月份从0开始,需要加1,并补零
|
||||
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,6 +613,23 @@
|
||||
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) {
|
||||
this.times_b_int = this.form.start_time_text
|
||||
@ -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小于当前时间 用的是年月日而不是时间戳
|
||||
@ -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
|
||||
@ -1506,13 +1600,23 @@
|
||||
//编辑
|
||||
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(',');
|
||||
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('新增');
|
||||
|
||||
console.log('新增', params.images);
|
||||
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('新增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?:\/\/[^/]+/, '')
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -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>-->
|
||||
|
@ -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>
|
||||
|
84
pages.json
84
pages.json
@ -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": {
|
||||
|
@ -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>
|
||||
@ -756,13 +759,30 @@ uni.hideShareMenu();
|
||||
const formattedDate = `${year}-${month}-${day}`;
|
||||
return formattedDate;
|
||||
},
|
||||
// 在methods中添加计算加8小时的方法
|
||||
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-date组件有一个setDefaultTime方法来设置默认时间
|
||||
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) {
|
||||
|
||||
|
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 |
Loading…
x
Reference in New Issue
Block a user