618活动修改

This commit is contained in:
liuyuan
2025-06-12 17:08:34 +08:00
parent 29b2a8b206
commit e0556ef0fd
11 changed files with 219 additions and 197 deletions

View File

@@ -38,7 +38,7 @@ const courtConfig = {
const orderRegular = /[0-9]\d{31}$/;
//手机号验证正则表达式
// (中国大陆)
const phoneRegular = /^1\d{10}$/;
const phoneRegular = /^1(3[0-9]|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/;
// 手机号码验证 支持港澳台 大陆
// const phoneRegular = /^[1][3-8]\d{9}$|^([6|9])\d{7}$|^[0][9]\d{8}$|^[6]([8|6])\d{5}$|^(00){0,1}(65){1}[13689]\d{6,7}$/;
//邮箱验证正则表达式

View File

@@ -12,8 +12,8 @@
"src" : "图片路径"
}
],
"versionName" : "2.0.13",
"versionCode" : 2013,
"versionName" : "2.0.14",
"versionCode" : 2014,
"app-plus" : {
"nvueCompiler" : "uni-app",
"compatible" : {

View File

@@ -36,8 +36,11 @@
<text class="font_bold" style=" display: block;" v-if="item.type==1||item.type==2">超级VIP权限</text>
<text class="font_bold" style=" display: block;" v-else>VIP权限</text>
<view class="vip_qx_v" v-if="item.type==1">无限制观看吴门医述APP中医学中西汇通学针灸学肿瘤学四个板块任意课程</view>
<view class="vip_qx_v" v-else-if="item.type==2">无限制观看众妙之门APP与吴门医述APP心理学板块任意课程</view>
<view class="vip_qx_v" v-else-if="item.type==2">无限制观看众妙之门APP与心灵空间APP任意课程</view>
<view class="vip_qx_v" v-else-if="item.type==7">无限制观看众妙之门APP任意课程</view>
<view class="vip_qx_v" v-else-if="item.type == 8"
>无限制观看心灵空间APP任意课程</view
>
<view class="vip_qx_v" v-else>无限制观看吴门医述APP{{item.title.replace(/VIP/g, '')}}板块任意课程</view>
<view class="vip_qx_v">

View File

@@ -91,11 +91,14 @@
>无限制观看吴门医述APP中医学中西汇通学针灸学肿瘤学四个板块任意课程</view
>
<view class="vip_qx_v" v-else-if="item.type == 2"
>无限制观看众妙之门APP与吴门医述APP心理学板块任意课程</view
>无限制观看众妙之门APP与心灵空间APP任意课程</view
>
<view class="vip_qx_v" v-else-if="item.type == 7"
>无限制观看众妙之门APP任意课程</view
>
<view class="vip_qx_v" v-else-if="item.type == 8"
>无限制观看心灵空间APP任意课程</view
>
<view class="vip_qx_v" v-else
>无限制观看吴门医述APP{{
item.title.replace(/VIP/g, "")

View File

@@ -22,7 +22,7 @@
>
</u-alert>
<view class="ACTable">
<view class="ACTable" style=" background: #eff5f8;">
<!-- <u-tabs :list="tab_list" @click="tab_click" lineColor="#54a966 100% 100%"
:activeStyle="{color: '#303133',fontWeight: 'bold',transform: 'scale(1.1)'}" ></u-tabs> -->
@@ -40,7 +40,7 @@
>充值</text
> -->
</view>
<view style="padding: 0 30rpx; padding-top: 0">
<view style="padding: 0 20rpx; padding-top: 0">
<view
class="AC_chong"
@click="onPageJump('/pages/mine/wallet/recharge/index')"
@@ -59,7 +59,7 @@
></image> -->
</view>
</view>
<view style="padding: 30rpx; padding-top: 0">
<view style="padding: 0 20rpx;">
<view class="AC_con">
<view class="AC_jilu PM_font">充值消费记录</view>
<common-list
@@ -81,86 +81,16 @@
}`"
>
<text v-if="slotProps.row.changeAmount > 0">+</text>
<text>{{ slotProps.row.changeAmount }}</text> </view
><view class="AC_mark" v-if="slotProps.row.remark">{{
slotProps.row.remark
}}</view
><view class="AC_time">{{ slotProps.row.createTime }}</view>
<text>{{ slotProps.row.changeAmount }}</text> </view>
<view class="AC_mark" v-if="slotProps.row.remark">{{slotProps.row.remark}}</view>
<view class="AC_note" v-if="slotProps.row.note&&slotProps.row.note!='null'">说明{{slotProps.row.note}}</view>
<view class="AC_time">{{ slotProps.row.createTime }}</view>
</view>
</template>
</common-list>
</view>
</view>
</view>
<!-- <view v-if="tab_muJian==1">
<view class="couponList">
<view v-for="(item,index) in couponTabs" @click="couponTabCLi(index)"
:class="couponListTab==index?'couStyle':''">{{item.name}}</view>
</view>
<view>
<view class="card" v-for="item in cardList">
<view>
<view class="content">
<view :class="couponListTab==0?'page-group':'page-group grey'">
<i class="fold-page"></i>
<span class="page">优惠券</span>
</view>
<i class="dot-left"></i>
<i class="dot-right"></i>
<view class="coupon-detail">
<view :class="couponListTab==0?'':'grey'">
<span></span>
<span>{{item.coupons.amount}}</span>
</view>
<view>
<view>{{item.coupons.couponName}}</view>
<view>{{item.coupons.useLevel}}元可用</view>
<view>
<span v-if="item.coupons.couponProType == 0">使用类型商品类</span>
<span v-if="item.coupons.couponProType == 1">使用类型电子书</span>
</view>
</view>
<view>
<view v-if="couponListTab==0" @click="onPageJump('../bookShop/bookShopIndex')">
立即使用</view>
</view>
</view>
</view>
<view class="footer">
<view style="margin: 0 0 8rpx 0;">使用时间{{item.coupons.takeEffectDate}} -
{{item.coupons.expirationDate}}
</view>
<view>{{item.coupons.note}}</view>
<view class="arrow"></view>
<view class="arrow-up"></view>
</view>
<view class="ribbon" v-if="couponListTab==0">未使用</view>
<view class="ribbon grey" v-if="couponListTab==1">已使用</view>
<view class="ribbon grey" v-if="couponListTab==2">已过期</view>
</view>
</view>
<view v-if="cardList.length==0" style="text-align: center;font-size: 30rpx;color: #666;">暂无代金券
</view>
</view>
</view> -->
<!-- <view>
<view v-if="status == 0" style="text-align: center">
<u-loading-icon style="display: inline-block"></u-loading-icon>
<font
style="
vertical-align: super;
margin-left: 10px;
font-size: 26rpx;
color: #909399;
"
>努力加载中</font
>
</view>
<view v-if="status == 1">
<u-divider text="全部加载完成"></u-divider>
</view>
</view> -->
<view style="padding-bottom: 20rpx">
<u-back-top
@@ -281,7 +211,6 @@ export default {
// 隐藏原生的tabbar
uni.hideTabBar();
this.getData();
// this.getCourpe();
},
components: {
musicPlay,
@@ -337,27 +266,6 @@ export default {
tab_click(e) {
this.tab_muJian = e.index;
},
// 优惠券
getCourpe() {
this.$http
.post(
"/book/couponhistory/appGetUserCenterCoupon?userId=" +
this.userInfo.id +
"&useStatus=" +
this.couponListTab
)
.then((res) => {
// this.cardList = res.couponVos
this.cardList = res.couponVos;
});
},
// 切换优惠券
couponTabCLi(e) {
this.couponListTab = e;
this.getCourpe();
},
// 充值天医币
buPoint() {
uni.navigateTo({
@@ -413,11 +321,9 @@ export default {
.AC_con {
background-color: #fff;
overflow: hidden;
// margin-top: 50rpx;
// padding: 30rpx 30rpx;
box-shadow: 0 0px 10px 1px #d3d1d133;
border-radius: 15rpx;
border-radius: 0 0 15rpx 15rpx;
margin-bottom: 40rpx;
font-size: 30rpx;
padding-bottom: 30rpx;
@@ -470,10 +376,13 @@ export default {
color: #888;
display: inline-block;
}
.AC_note {
color: #888;
font-size: 26rpx;
}
.AC_time {
color: #bababa;
font-size: 28rpx;
font-size: 26rpx;
display: inline-block;
}
}

View File

@@ -2,7 +2,7 @@
<view class="commonPageBox" style="height: 100vh">
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<z-nav-bar title="我的积分" bgColor="" fontColor="#000000"> </z-nav-bar>
<z-nav-bar title="我的积分" bgColor="#258feb" fontColor="#fff"> </z-nav-bar>
<view class="ACTable">
<!-- <u-tabs :list="tab_list" @click="tab_click" lineColor="#54a966 100% 100%"
:activeStyle="{color: '#303133',fontWeight: 'bold',transform: 'scale(1.1)'}" ></u-tabs> -->
@@ -44,11 +44,8 @@
>
<text v-if="slotProps.row.changeAmount > 0">+</text>
<text>{{ slotProps.row.changeAmount }}</text>
</view
><view class="AC_mark" v-if="slotProps.row.remark">{{
slotProps.row.remark
}}</view
>
</view>
<view class="AC_mark" v-if="slotProps.row.remark">{{slotProps.row.remark}}</view>
</view>
<!-- <text class="order" style="font-size: 12px;" v-if="slotProps.row.relationId" @click="goClick(slotProps.row.relationId)">订单详情</text> -->
</template>
@@ -334,7 +331,7 @@ export default {
<style lang="scss" scoped>
@import "@/style/mixin.scss";
.commonPageBox {
background-color: #dbeff9;
background-color: #eff5f8;
// background-image: url("@/static/icon/mine_bg.png");
// background-repeat: no-repeat;
// background-size: 100% 100%;

View File

@@ -7,7 +7,7 @@
<view>
<view class="cha_jine">
<view class="cj_title PM_font">充值金额
<view class="cf_title PM_font">充值金额
</view>
@@ -19,31 +19,23 @@
">
<view
class="pr_jg"
style="display: flex; align-items: center; justify-content: center"
style="display: flex; align-items: center; justify-content: center; font-size:44rpx;"
>
<image
src="@/static/icon/currency.png"
alt=""
style="width: 40rpx; height: 40rpx; margin-right: 10rpx"
/>
{{ item.money }}
{{ item.realMoney }}
</view>
<view class="pr_yl" style="color: #565455"
>{{ item.realMoney }}</view
>
<view class="pr_lj" v-if="item.description&&item.description!=''"
> {{item.description}}</view
>
<view class="pr_yl" :style="item.givejf&&item.givejf>0?' paddingTop: 0':''">{{ item.money }}天医币<text v-if="item.givejf&&item.givejf>0">{{ item.givejf }}积分</text></view>
<view class="pr_lj" v-if="item.description&&item.description!=''">{{item.description}}</view>
</view>
<br clear="both" />
</view>
<view
><text style="font-size: 24rpx; color: #8e8e8e; font-weight: 500"
>说明 : 天医币属于虚拟产品一经购买概不退还</text
></view
>
<view class="limitBlock" v-if="isAndroid">
<text>其他金额</text>
<input type="text" v-model="limitVal" placeholder="请输入充值金额" placeholder-class="limit-placeholder" @input="input()" />
</view>
<view>
<text style="font-size: 24rpx; color: #8e8e8e;">说明 : 天医币属于虚拟产品一经购买概不退还</text>
</view>
<view class="active_block" v-if="isAndroid&&activityContent.remark" v-html="activityContent.remark"></view>
</view>
<view class="cha_fangsh">
<view class="cf_title PM_font">支付方式</view>
@@ -85,8 +77,6 @@
</view>
<view class="char_btn">
<view @click="goToPay">立即充值</view>
<!-- <view @click="iosPay" >立即充值</view> -->
</view>
</view>
<!-- 充值协议 -->
@@ -174,6 +164,8 @@
urlList: {
list: "common/bookBuyConfig/getBookBuyConfigList",
},
limitVal: '',
activityContent: {}
};
},
//第一次加载
@@ -187,6 +179,8 @@
} else {
this.payType = 1;
}
this.getActivity();
},
//页面显示
onShow() {
@@ -528,7 +522,7 @@
// 点击充值金额
chosPric(e) {
this.stepsCj = e;
console.log(e);
this.limitVal = '';
},
// 选择支付方式1
@@ -544,12 +538,59 @@
// 3.请求并创建新的订单
this.iphonepay();
},
//获取活动文案
getActivity(){
$http.request({
url: "common/bookBuyConfig/getRechargeActivity",
method: "POST",
data: {},
header: {
"Content-Type": "application/json",
},
})
.then((data) => {
if(data.code==0){
if(data.res&&data.res.length>0){
this.activityContent = data.res[0];
}
}
})
},
//输入金额
input(val){
this.stepsCj = {};
},
// 充值
goToPay() {
this.kaiChar();
},
// 正常充值
kaiChar() {
if(!this.stepsCj.priceTypeId&&!this.limitVal){
uni.showToast({
title: "请选择充值商品",
icon: "none",
});
return false;
}
const regex = /^[1-9]\d*$/;
//如果输入其他金额
if(this.limitVal){
if(!regex.test(this.limitVal)){
uni.showToast({
title: "充值金额必须为正整数",
icon: "none",
});
return false;
}
//设置充值金额和id
this.stepsCj = {
money: this.limitVal,
priceTypeId: 0
}
}
// 常规充值
if (this.radioValue == "1") {
uni.showLoading({
@@ -792,7 +833,7 @@
}
.cha_jine {
margin: 40rpx 30rpx 0 30rpx;
margin: 40rpx 30rpx 20rpx 30rpx;
.cj_title {
font-size: 36rpx;
@@ -803,56 +844,64 @@
margin-top: 40rpx;
.cj_price {
border: 4rpx solid #ebebeb;
// box-shadow: 0 0 20rpx 0 #0000001a;
box-shadow: 0 0 20rpx 0 #0000001a;
float: left;
width: 31%;
margin: 0 3% 30rpx 0;
width: 47%;
margin: 0 5% 30rpx 0;
text-align: center;
padding: 25rpx 0 30rpx 0;
padding: 30rpx 0 0;
border-radius: 15rpx;
position: relative;
color: #2d2d2d;
height: 160rpx;
.pr_jg {
font-size: 38rpx;
margin: 0rpx 0 10rpx 0;
font-weight: bold;
}
.pr_yl {
font-size: 28rpx;
// text-decoration: line-through;
padding-top: 10rpx;
font-size: 26rpx;
color: #575555;
text{
width: 100%;
text-align: center;
line-height: 40rpx;
position: absolute;
left: 0;
bottom: 10rpx;
color: red;
display: block;
font-size: 24rpx;
}
}
.pr_lj {
background-image: linear-gradient(90deg, #258feb 0%, $themeColor 100%);
background-image: linear-gradient(180deg, #258feb 0%, #abcbfb 100%);
color: #fff;
position: absolute;
top: -22rpx;
right: -22rpx;
font-size: 24rpx;
padding: 5rpx 4rpx;
line-height: 20px;
padding: 5rpx 10rpx;
border-top-left-radius: 20rpx;
border-bottom-right-radius: 20rpx;
}
}
.cj_price:nth-child(3n) {
.cj_price:nth-child(2n) {
margin-right: 0;
}
.Tab_cj {
// box-shadow: 0 0 20rpx 0 #fe700bcc;
box-shadow: 0px 0px 3px 0px $themeColor !important;
border: 4rpx solid $themeColor;
color: #258feb;
background: #e3f7ff !important;
box-shadow: 0px 0px 5px 0px $themeColor !important;
color: $themeColor;
.pr_yl{
color: #258feb !important;
color: $themeColor;
}
}
}
@@ -861,15 +910,15 @@
.highlight {
color: $uni-color-primary;
}
.cha_fangsh {
padding: 40rpx 30rpx;
.cf_title {
font-size: 46rpx;
color: $themeColor;
}
.cha_fangsh {
padding: 40rpx 30rpx;
.cf_radio {
margin-top: 20rpx;
@@ -904,10 +953,12 @@
}
.char_btn {
width: 100%;
background: #fff;
padding: 20rpx 0;
position: fixed;
left: 0;
right: 0;
bottom: 30rpx;
bottom: 0;
view {
background-image: linear-gradient(90deg, #258feb 0%, $themeColor 100%);
@@ -915,9 +966,8 @@
width: 90%;
margin: 0 auto;
text-align: center;
font-size: 35rpx;
font-weight: bold;
padding: 25rpx 0;
font-size: 30rpx;
padding: 20rpx 0;
border-radius: 50rpx;
}
}
@@ -936,4 +986,62 @@
.commonPageBox {
background-color: #fff !important;
}
.limitBlock{
display: flex;
align-items: center;
margin-bottom: 10rpx;
text{
font-size: 28rpx;
}
input{
display: inline-block;
margin-left: 20rpx;
width: 300rpx;
height: 70rpx;
border: 1rpx solid #ededed;
border-radius: 10rpx;
line-height: 40rpx;
padding: 20rpx;
font-size: 28rpx;
color: #666;
}
}
.limit-placeholder{
font-size: 25rpx;
color: #8b8c90 !important;
}
.active_block{
width: 100%;
background-color: rgba(37, 143, 235, 0.2);
border-radius: 10rpx;
padding: 10rpx 20rpx;
font-size: 28rpx;
line-height: 42rpx;
margin-top: 15rpx;
color: #333;
}
/deep/.active_block span{
color: red;
font-size: 32rpx;
font-weight: bold;
padding: 0 5rpx;
}
/deep/.active_block span:first-child{
padding: 0 5rpx 0 0;
}
/deep/.active_block p{
padding-top: 10rpx;
color: #666;
font-size: 24rpx;
line-height: 34rpx;
}
/deep/.active_block p span{
padding: 0 5rpx !important;
}
</style>

View File

@@ -50,16 +50,16 @@
</view>
<view class="optionsBox">
<view :class="['item','border_radius_10',
item.rightWrong == 1 ? 'right' : '',
checkAnswer(item.id) && item.rightWrong == 0 ? 'wrong' : '',
checkAnswer(item.id) && item.rightWrong == 1 ? 'right' : ''
item.right_wrong == 1 ? 'right' : '',
checkAnswer(item.id) && item.right_wrong == 0 ? 'wrong' : '',
checkAnswer(item.id) && item.right_wrong == 1 ? 'right' : ''
]"
v-for="(item, index) in curQuestion.options" :key="index">
<!-- {{checkAnswer(item.id) ? '包含' : '不包含'}} -->
<view class="flex_box flex_between">
<text>{{item.content}}</text>
<text
v-if="checkAnswer(item.id)">{{item.rightWrong == 1 ? '正确':'错误'}}</text>
v-if="checkAnswer(item.id)">{{item.right_wrong == 1 ? '正确':'错误'}}</text>
</view>
</view>
@@ -236,6 +236,8 @@ checkAnswer(id){
})
this.questionList = subOptions
console.log('this.questionListthis.questionListthis.questionList', this.questionList)
this.testPaper = res.examPaper
console.log('试卷信息', this.testPaper);
this.answerIdsList = JSON.parse(res.examPaper.answer)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long