This commit is contained in:
2025-04-16 16:17:14 +08:00
31 changed files with 24678 additions and 19359 deletions

View File

@@ -2,8 +2,8 @@ let baseUrl = "";
let socketUrl = ""; let socketUrl = "";
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
// 开发环境 // 开发环境
baseUrl = "https://api.nuttyreading.com/"; //线上正式 //baseUrl = "https://api.nuttyreading.com/"; //线上正式
// baseUrl = "http://192.168.110.100:9200/pb/"; //张川川 baseUrl = "http://192.168.110.100:9200/pb/"; //张川川
} else if (process.env.NODE_ENV === 'production') { } else if (process.env.NODE_ENV === 'production') {
// 生产环境11 // 生产环境11
baseUrl = "https://api.nuttyreading.com/"; baseUrl = "https://api.nuttyreading.com/";

View File

@@ -6,12 +6,14 @@
"request" : 15000 "request" : 15000
}, },
"transformPx" : false, "transformPx" : false,
"icons": [{ "icons" : [
{
"sizes" : "分辨率192x192", "sizes" : "分辨率192x192",
"src" : "图片路径" "src" : "图片路径"
}], }
"versionName": "2.0.06", ],
"versionCode": 2006, "versionName" : "2.0.07",
"versionCode" : 2007,
"app-plus" : { "app-plus" : {
"nvueCompiler" : "uni-app", "nvueCompiler" : "uni-app",
"compatible" : { "compatible" : {
@@ -268,3 +270,4 @@
} }
} }
// 小程序特有相关 // 小程序特有相关

View File

@@ -773,6 +773,24 @@
{ {
"navigationBarTitleText" : "用户优惠券列表" "navigationBarTitleText" : "用户优惠券列表"
} }
},
{
"path": "pages/trainingCourse/index",
"style": {
"navigationBarTitleText": "培训班管理"
}
},
{
"path": "pages/trainingCourse/detail",
"style": {
"navigationBarTitleText": "培训班管理"
}
},
{
"path": "pages/order/index",
"style": {
"navigationBarTitleText": "确认订单"
}
} }
], ],
"globalStyle": { "globalStyle": {

View File

@@ -235,6 +235,24 @@
</view> </view>
<br clear="both" /> <br clear="both" />
</view> </view>
<view
class="orderContent"
v-else-if="orderContet.orderType == 'trainingClass'"
>
<image
src="/static/icon/icon_pxb.png"
mode="aspectFill"
style="width: 100rpx; height: 100rpx"
></image>
<view class="itemJian">
<view class="orderTitle" style="line-height: 100rpx">
<text>{{orderContet.remark}}</text>
</view>
<br clear="both" />
</view>
<br clear="both" />
</view>
<view class="order_item" style=""> <view class="order_item" style="">
<view class="orderallpri"> <view class="orderallpri">

View File

@@ -115,6 +115,28 @@
> >
</view> </view>
</view> </view>
<view v-if="slotProps.row.orderType == 'trainingClass'" class="bookinfolist">
<image
class="feng fengPoint"
src="/static/icon/icon_pxb.png"
mode="aspectFill"
>
</image>
<view class="btns flexbox">
<view class="booknameleft">
{{ slotProps.row.remark }}
</view>
<view style="
line-height: 58rpx;
color: #333;
font-size: 26rpx;
font-weight: 700;
">
<text style="font-size: 20rpx"></text>
</view>
</view>
</view>
<view <view
v-if="slotProps.row.orderType == 'relearn'" v-if="slotProps.row.orderType == 'relearn'"
class="bookinfolist" class="bookinfolist"

View File

@@ -203,6 +203,11 @@
url: "/pages/certificate/certificate", url: "/pages/certificate/certificate",
type: "pageJump", type: "pageJump",
}, },
{
name: "培训班管理",
url: "/pages/trainingCourse/index",
type: "pageJump",
},
{ {
name: "我的湖分", name: "我的湖分",
url: "/pages/hufen/hufen", url: "/pages/hufen/hufen",

View File

@@ -3,7 +3,7 @@
<!-- 公共组件-每个页面必须引入 --> <!-- 公共组件-每个页面必须引入 -->
<public-module></public-module> <public-module></public-module>
<z-nav-bar title="充值" bgColor="#258feb" fontColor="#fff" :homeState="options.source == 'order' ? 1000 : 2000" <z-nav-bar title="充值" bgColor="#258feb" fontColor="#fff" :homeState="options.source == 'order' ? 1000 : 2000"
:backState="options.source == 'order' ? 2000 : 1000"></z-nav-bar> :backState="options.source == 'order' ? 2000 : 1000" @click-home="handleHomeClick"></z-nav-bar>
<view> <view>
<view class="cha_jine"> <view class="cha_jine">
@@ -235,8 +235,12 @@
} }
}); });
// } },
//回到首页
handleHomeClick(){
uni.switchTab({
url: '/pages/peanut/home'
});
}, },
// 关闭交易订单 // 关闭交易订单
finishTransaction(trans) { finishTransaction(trans) {

1054
pages/order/index.vue Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
<template>
<view class="page" style=" height:100vh; background: #f6f6f8;">
<z-nav-bar title="培训班管理"></z-nav-bar>
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<view v-if="image&&image.length>0">
<image v-for="(item,index) in image" :key="index" :src="item" mode="aspectFit" class="image"></image>
</view>
<z-navigation></z-navigation>
</view>
</template>
<script>
import $http from '@/config/requestConfig.js';
export default {
data() {
return {
image: [],
}
},
onLoad(e) {
this.image = e.image.split(',');
console.log(this.image)
},
onShow() {
},
methods: {
//获取数据
getData(){
uni.showLoading({
title: '加载中'
})
$http.request({
url: "common/trainingClass/trainingClassList",
method: "POST",
data: {
year: this.year
},
header: {
'Content-Type': 'application/json'
},
})
.then(res => {
uni.hideLoading();
if (res.code == 0) {
if(res.trainingClassList&&res.trainingClassList.length>0){
this.list = res.trainingClassList;
}else{
this.list = [];
this.nullStatus = true;
}
}
}).catch(e => {
});
},
},
}
</script>
<style lang="scss" scoped>
.image{
width: 100%;
height: auto;
}
/deep/.image img{
position: initial;
opacity: 1;
}
</style>

View File

@@ -0,0 +1,192 @@
<template>
<view class="page" style=" height:100vh; background: #f6f6f8;">
<z-nav-bar title="培训班管理">
<view slot="right">
<picker mode="date" fields="year" @change="handleYearChange">
<view class="picker">
<uni-icons type="info" size="16"></uni-icons>{{ year || '请选择年份' }}
</view>
</picker>
</view>
</z-nav-bar>
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<view class="list_block" v-if="!nullStatus">
<view class="list_item" v-for="(item,index) in list" :key="index">
<view class="list_item_right">
<text class="list_item_title">{{item.title}}</text>
<text class="list_item_text">活动类型<span v-if="item.type==1">线上</span><span v-else>线下</span></text>
<text class="list_item_text">活动年份{{item.year}}</text>
<text class="list_item_text">培训日期{{item.trainingDate}}{{item.endDate}}</text>
<text class="list_item_text">培训价格<span style="color: red;">{{item.finalFee}}</span></text>
<view style=" display: flex; align-items: center;">
<uni-button class="list_item_btn" @click="goToDetail(item)">了解详情</uni-button>
<uni-button class="list_item_btn list_item_btn_bm" @click="goToBuy(item)" v-if="item.isJoin!=1&&item.singupFlag!=0">立即报名</uni-button>
</view>
</view>
<view class="statusBg" v-if="item.isJoin==1">已报名</view>
<view class="statusBg statusBg2" :class="item.isJoin==1?'statusBg_top':''" v-if="item.singupFlag==0">已关闭</view>
</view>
</view>
<view class="zanwu" v-if="nullStatus">暂无数据</view>
<z-navigation></z-navigation>
</view>
</template>
<script>
import $http from '@/config/requestConfig.js';
export default {
data() {
return {
list: [],
nullStatus: false,
year: '',
}
},
onLoad(e) {
},
onShow() {
this.getData();
},
methods: {
//获取数据
getData(){
uni.showLoading({
title: '加载中'
})
$http.request({
url: "common/trainingClass/trainingClassList",
method: "POST",
data: {
year: this.year
},
header: {
'Content-Type': 'application/json'
},
})
.then(res => {
uni.hideLoading();
if (res.code == 0) {
if(res.trainingClassList&&res.trainingClassList.length>0){
this.list = res.trainingClassList;
}else{
this.list = [];
this.nullStatus = true;
}
}
}).catch(e => {
});
},
//选择年份
handleYearChange(event){
this.year = event.detail.value;
this.list = [];
this.nullStatus = false;
this.getData();
},
//了解详情
goToDetail(item){
uni.navigateTo({
url: `/pages/trainingCourse/detail?image=${item.icon}`,
});
},
//立即报名
goToBuy(item){
var data = {
id: item.id,
title: item.title,
price: item.finalFee,
identity: item.identity
}
uni.navigateTo({
url: '/pages/order/index?data='+JSON.stringify(data),
});
},
},
}
</script>
<style>
.zanwu{
font-style: 26rpx;
line-height: 30rpx;
padding-top: 100rpx;
text-align: center;
color: #999;
}
.list_block{
padding: 20rpx;
}
.list_item{
margin-bottom: 20rpx;
background-color: #fff;
border-radius: 15rpx;
padding: 20rpx;
box-shadow: 0px 0px 6px 0px #a7bbe4;
position: relative;
}
.list_item_right{
margin-left: 20rpx;
}
.list_item_right text{
display: block;
}
.list_item_title{
font-size: 32rpx;
font-weight: bold;
color: #333;
line-height: 40rpx;
padding-bottom: 10rpx;
}
.list_item_text{
font-size: 26rpx;
color: #666;
line-height: 40rpx;
}
.list_item_btn{
margin-top: 10rpx;
width: 150rpx;
height: 50rpx;
text-align: center;
line-height: 50rpx;
border-radius: 15rpx;
background-image: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
font-size: 24rpx;
color: #fff;
}
.list_item_btn_bm{
margin-left: 10rpx;
background-image: linear-gradient(90deg, #ff1f00 0%, #fa9f93 100%);
}
.statusBg{
position: absolute;
right: 0;
top: 20rpx;
width: 100rpx;
height: 44rpx;
line-height: 44rpx;
background: #ff1f00;
opacity: 0.8;
border-radius: 50rpx 0 0 50rpx;
font-size: 22rpx;
color: #fff;
padding-left: 20rpx;
}
.statusBg2{
background: #999;
}
.statusBg_top{
top: 70rpx;
}
.picker{
display: flex;
align-items: center;
font-size: 26rpx;
padding-right: 20rpx;
}
</style>

BIN
static/icon/icon_pxb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

View File

@@ -426,7 +426,7 @@ export default {
this.$emit("homeClick"); this.$emit("homeClick");
} else { } else {
uni.switchTab({ uni.switchTab({
url: '/pages/homePage/index/index', url: '/pages/peanut/home',
}); });
} }
}, },

17
unpackage/cache/appleConfig.ini vendored Normal file
View File

@@ -0,0 +1,17 @@
[appleAppid]
appleAppid=com.cn.medicine
[iosStyle]
iosStyle=common
[universalLinks]
universalLinks=https://verification.nuttyreading.com/uni-universallinks/__UNI__C7475A8/
spaceid=mp-3614b80b-2d75-4462-a481-4998f8187274
[universalLinks_qq]
universalLinks_qq=
spaceid_qq=
[universalLinks_weibo]
universalLinks_weibo=
spaceid_weibo=

3
unpackage/cache/certdataios vendored Normal file
View File

@@ -0,0 +1,3 @@
iosProfile=C:/Users/Administrator/Desktop/吴门医述证书/ios/medicine.mobileprovision
ioscertFile=C:/Users/Administrator/Desktop/吴门医述证书/ios/medicine.p12
ioscertPassword=wH88Yu6du9o/Dlg0GgsCZw==

View File

@@ -0,0 +1,11 @@
{
"applinks" : {
"apps" : [],
"details" : [
{
"appID" : "84LKB8J47D.com.cn.medicine",
"paths" : [ "*", "/uni-universallinks/__UNI__C7475A8/*" ]
}
]
}
}

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

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

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

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long