太湖公益

This commit is contained in:
2024-05-30 14:26:42 +08:00
parent 314f4a4fb4
commit e595e034dc
144 changed files with 17860 additions and 13154 deletions

View File

@@ -0,0 +1,799 @@
<template>
<view class="commonPageBox" style="background-color: #eaf7f2 !important">
<public-module></public-module>
<view class="header_box">
<view class="header_bg" :style="`margin-top:${statusBarHeight * 2}rpx`">
<text class="PM_font">太湖公益</text>
</view>
</view>
<!-- <view class="header_box">
<view class="header_bg" :style="`margin-top:${statusBarHeight * 2}rpx`">
<text class="PM_font" style="margin-left: 100rpx">太湖公益</text>
</view>
</view> -->
<!-- height: calc(100vh - 100px); -->
<view
class="main_content_box"
:style="`height:calc(100vh - ${(175 + statusBarHeight) * 2}rpx)`"
>
<view class="curriculum_box cate_box">
<view
:style="`background-image: url('${
currentCate == i ? v.activeImage : v.image
}');color:${currentCate == i ? '#fff' : '#3ab3ae'} !important;`"
class="curriculum_item_box icon_bg"
v-for="(v, i) in curriculumList"
@click="handleClickCurriculum(v, i)"
>
<!-- <view class="curriculum_item"> -->
<!-- <image
:src="v.imgUrl"
mode="aspectFill"
class="curriculum_item_img"
></image> -->
<view
class="curriculum_item_name"
style="margin-left: 100rpx"
:style="`;color:${currentCate == i ? '#fff' : v.color} !important;`"
>{{ v.name }}</view
>
<!-- </view> -->
</view>
</view>
<!-- <view class="cate_box">
<view
class="cate_item_box"
v-for="(v, i) in cateList"
@click="handleClickCate(v)"
>
<view class="cate_item_border">
<image :src="v.imgUrl" mode="aspectFill" :style="v.style"></image>
</view>
<view class="cate_item_name">{{ v.title }}</view>
</view>
</view> -->
<view class="flash_sale_box" v-if="currentCate == 0">
<view class="flash_sale_content">
<scroll-view
scroll-y="true"
class="scroll-Y"
style="height: 100%"
@scrolltolower="onReachBottom1"
>
<view
class="scroll-view-item flash_sale_content_item"
@click="goGoodsDetail(v)"
v-for="(v, i) in goodsList"
>
<image class="book_image" :src="v.productImages" mode="aspectFit">
</image>
<!-- <view class="active_price" v-if="v.activityPrice > 0">
<text>秒杀</text>
</view>-->
<view class="book_content">
<view class="book_name">{{ v.productName }}</view>
<view class="bottom">
<view class="book_price">
<view class="book_price_current">
<text class="price_icon"></text>
<text class="price">{{
v.activityPrice > 0 ? v.activityPrice : v.price
}}</text></view
>
<view class="book_price_old" v-if="v.activityPrice > 0"
>原价{{ v.price }}</view
>
</view>
<view class="sumSales">已售{{ v.sumSales }}</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<view class="flash_sale_box" v-if="currentCate == 1">
<view class="flash_sale_content">
<common-list
style="height: 100%"
noDataIcon="data"
:isCondition="true"
@lower="onReachBottom2"
:pagination="pagination"
:dataList="noticeList"
@hancleClick="gotoDetail"
label="title"
>
<template slot="labelSlot" slot-scope="slotProps">
<view class="related_courses_name hidden1">{{
slotProps.row.title
}}</view>
<!-- <text v-if="slotProps.row.conditions!='03'">试听</text> -->
</template>
</common-list>
</view>
</view>
</view>
<!-- <view style="padding-bottom: 20rpx">
<u-back-top
:scroll-top="scrollTop"
bottom="60"
:customStyle="bgiStyle"
:iconStyle="iconStyle"
>
</u-back-top>
</view> -->
</view>
</template>
<script>
import { mapState, mapMutations } from "vuex";
export default {
name: "music",
props: {},
data() {
return {
scrollTop: 0,
bgiStyle: {
background: "#bbe5d8",
},
iconStyle: {
fontSize: "40rpx",
fontWeight: "bold",
color: "#54a966",
},
noticeList: [], //秒杀列表
goodsList: [], //秒杀列表
studyList: [], //正在学习
dataInfo: {},
flashSaleList: [], //试听
miaoShaContent: "",
curriculumList: [
{
name: "太湖商品",
url: "/pages/courseInformation/index/index",
color: "#d93737",
// url: "",
image: require("@/static/icon/taihuicon2.png"),
activeImage: require("@/static/icon/taihuicon2_active.png"),
},
{
name: "太湖之光",
url: "/pages/curriculum/order/index/index",
color: "#3ab3ae",
// url: "",
image: require("@/static/icon/taihuicon1.png"),
activeImage: require("@/static/icon/taihuicon1_active.png"),
},
// {
// name: "吴门之光",
// url: "/pages/medicaldes/medicaldes",
// imgUrl: require("@/static/icon/homePage/wmzg.png"),
// },
],
pagination1: {
// 请求参数
page: 1, //页码
limit: 20, //每页显示
total: 0, //总条数
},
pagination: {
// 请求参数
page: 1, //页码
limit: 20, //每页显示
total: 0, //总条数
},
urlList: {
list: "app/phoneDoctor.do?toHomePage",
getGoodsList: "common/taihuWelfare/getTaihuWelfareProductList", //秒杀商品
article: "common/taihuWelfare/getTaihuWelfareArticleList", //消息
},
};
},
onReady() {},
onLoad() {},
async onShow() {
this.currentCate = 0;
console.log("at line 287:", this.userInfo);
this.requestAll();
},
async onTabItemTap() {
this.currentCate = 0;
console.log("at line 287:", this.userInfo);
this.requestAll();
},
methods: {
...mapMutations(["setUserInfo"]),
onReachBottom1() {
// 上拉加载
// 当列表数量不大于或等于总数量,则再次调用接口请求数据
// if (this.currentCate == 0) {
if (this.goodsList.length >= this.pagination1.total) return;
this.pagination1.page++;
this.getGoodsList();
// }
},
onReachBottom2() {
// 上拉加载
// 当列表数量不大于或等于总数量,则再次调用接口请求数据
// if (this.currentCate == 1) {
if (this.noticeList.length >= this.pagination.total) return;
this.pagination.page++;
this.getArticle();
// }
},
gotoDetail(data) {
uni.navigateTo({
url: `/pages/homePage/index/noticeDetail?id=${data.id}`,
});
},
requestAll() {
// 获取当前页面的栈
this.$nextTick(async () => {
this.pagination1 = {
// 请求参数
page: 1, //页码
limit: 20, //每页显示
total: 0, //总条数
};
this.goodsList = [];
await this.getGoodsList();
// await this.getSociologyLabels();
});
},
handleGoApp() {
if (plus.os.name == "Android") {
plus.runtime.launchApplication(
{
pname: "com.cn.nuttyreading",
},
function (e) {
console.log("Open system default browser failed: " + e.message);
}
);
} else if (plus.os.name == "iOS") {
plus.runtime.launchApplication(
{
action: "taobao://",
},
function (e) {
console.log("Open system default browser failed: " + e.message);
}
);
}
},
async getData() {
var that = this;
this.$http.post(this.urlList.getUserLateCourseList).then(async (res) => {
console.log(res, "7777777777777777777");
if (res.code == 0) {
that.studyList = res.page ? res.page : [];
}
});
},
async getArticle() {
if (this.pagination.page == 1) {
this.noticeList = [];
}
var that = this;
var data = {
...this.pagination,
};
this.$http
.request({
url: this.urlList.article,
method: "POST",
data: data,
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then(async (res) => {
console.log(res, "7777777777777777777");
var that = this;
// console.log("result at line 332:", result);
// that.noticeList = res.page ? result : [];
that.pagination.total = res.page.total;
if (res.page.total == 0) {
// this.isLoadingHide = true;
}
if (res.code == 0 && res.page && res.page.records.length > 0) {
that.noticeList = that.noticeList.concat(res.page.records);
that.$forceUpdate();
} else {
//
}
// if (res.page.records.length != 10) {
// that.status = 1;
// } else {
// that.status = 0;
// }
})
.catch((e) => {
console.log(e);
});
},
async getGoodsList() {
var that = this;
this.$http
.request({
url: this.urlList.getGoodsList,
method: "POST",
data: this.pagination1,
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then(async (res) => {
console.log(res, "999");
var that = this;
// console.log("result at line 332:", result);
// that.noticeList = res.page ? result : [];
that.pagination1.total = res.page.total;
if (res.page.total == 0) {
// this.isLoadingHide = true;
}
if (res.code == 0 && res.page && res.page.records.length > 0) {
that.goodsList = that.goodsList.concat(res.page.records);
that.$forceUpdate();
} else {
//
}
// that.goodsList = res.products.records ? res.products.records : [];
// that.$forceUpdate();
});
},
async getMarketCourseList() {
var that = this;
this.$http
.request({
url: this.urlList.getMarketCourseList,
method: "POST",
data: {
id: 4, //这个需要后台提供数值,比如秒杀商品
limit: 10,
page: 1,
},
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then(async (res) => {
console.log(res, "7777777777777777777");
that.flashSaleList = res.courseList.records
? res.courseList.records
: [];
});
},
async getSociologyLabels() {
var that = this;
this.$http
.request({
url: this.urlList.getSociologyLabels,
method: "POST",
data: {
id: 0,
},
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then(async (res) => {
console.log(res.labels, "8888");
that.cateList.forEach((e, i) => {
var data = res.labels.filter((item) => item.title === e.title);
console.log("data at line 315:", data);
if (data.length > 0) {
that.cateList[i] = {
...data[0],
...e,
};
}
});
that.$forceUpdate();
console.log("this.cateList at line 314:", this.cateList);
});
},
goCourseDescription(v) {
console.log(v);
uni.navigateTo({
// url: '../bookShop/commodityDetail?id=' + item.id
url: `/pages/curriculum/order/curriculum/index?navTitle=${v.title}&title=${v.title}&id=${v.id}`,
});
},
goGoodsDetail(v) {
console.log(v);
uni.navigateTo({
// url: '../bookShop/commodityDetail?id=' + item.id
url: `/pages/goods/index/index?navTitle=${v.title}&isMiaosha=0&title=${v.title}&id=${v.productId}`,
});
},
async handleClickCurriculum(v, index) {
this.currentCate = index;
if (index == 0) {
this.pagination1 = {
// 请求参数
page: 1, //页码
limit: 20, //每页显示
total: 0, //总条数
};
this.goodsList = [];
await this.getGoodsList();
}
if (index == 1) {
this.pagination = {
// 请求参数
page: 1, //页码
limit: 20, //每页显示
total: 0, //总条数
};
this.noticeList = [];
await this.getArticle();
}
this.$forceUpdate();
console.log(v);
//if (v.url) {
//uni.navigateTo({
// url: v.url,
//});
//} else {
//this.$commonJS.showToast("此功能暂未开放");
//}
},
handleClickCate(v) {
console.log(v);
uni.navigateTo({
url: `${v.url}?navTitle=${v.title}&title=${v.title}&id=${v.id}`,
});
},
//关闭或开启 音乐
},
computed: {
...mapState(["userInfo"]),
timer() {
return calcTimer(this.userInfo.currentTime);
},
overTimer() {
return calcTimer(this.userInfo.duration);
},
playStatus() {
var playFlag = false;
this.userInfo.playFlag !== undefined
? (playFlag = this.userInfo.playFlag)
: "";
console.log(playFlag, "playFlag");
return playFlag;
},
},
watch: {},
};
//时间换算
function calcTimer(timer) {
if (timer === 0 || typeof timer !== "number") {
return "00:00";
}
let mm = Math.floor(timer / 60);
let ss = Math.floor(timer % 60);
if (mm < 10) {
mm = "0" + mm;
}
if (ss < 10) {
ss = "0" + ss;
}
return mm + ":" + ss;
}
</script>
<style lang="scss" scoped>
@import "@/style/mixin.scss";
.header_box {
width: 100%;
height: 250rpx;
background-repeat: no-repeat;
display: flex;
justify-content: center;
overflow: hidden;
background-size: 100% 100%;
background-image: url("@/static/icon/taihubg.png");
color: #fff;
font-size: 80rpx;
line-height: 260rpx;
}
.cate_box {
display: flex;
align-items: center;
justify-content: center;
padding: 0 !important;
padding-top: 40rpx;
.icon_bg {
width: 48%;
height: 80rpx;
line-height: 80rpx;
background-repeat: no-repeat;
background-size: 100% 100%;
color: #018f89;
font-size: 48rpx;
}
}
.main_content_box {
width: 100%;
margin-top: 0rpx;
padding: 27rpx;
// padding-top: 0rpx;
box-sizing: border-box;
// padding-top: 75rpx;
.curriculum_box {
width: 100%;
// height: 198rpx;
display: flex;
align-items: center;
justify-content: space-around;
padding: 0px 37rpx 17rpx;
box-sizing: border-box;
.curriculum_item_box {
height: 100%;
display: flex;
align-items: center;
.curriculum_item_img {
width: 39rpx;
height: 38rpx;
float: left;
}
.curriculum_item_name {
margin-top: -10rpx;
font-family: MicrosoftYaHei;
font-weight: bold;
font-size: 30rpx;
color: #001b73;
margin-left: 21rpx;
// line-height: 46rpx;
}
}
}
.flash_sale_box {
height: calc(100% - 100rpx);
// animation: example1 1s ease-out 0s backwards;
width: 100%;
margin-top: 33rpx;
margin-bottom: 10rpx;
.flash_sale_top {
width: 100%;
height: 61rpx;
background: #edfcf7;
box-shadow: 0rpx 0rpx 6rpx 0rpx rgba(0, 82, 79, 0.4);
border-radius: 7rpx;
padding: 3rpx 18rpx 3rpx 10rpx;
box-sizing: border-box;
display: flex;
align-items: center;
margin-bottom: 21rpx;
.miaoShaIcon {
margin-right: 16rpx;
}
.miaoShaTitle {
margin-right: 25rpx;
font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
font-weight: normal;
font-size: 35rpx;
color: #018f89;
line-height: 46rpx;
}
.miaoShaContent {
width: calc(100% - 172rpx);
margin-top: 1rpx;
font-family: Microsoft YaHei;
font-weight: 600;
font-size: 21rpx;
color: #018f89;
// line-height: 45rpx;
}
}
}
.flash_sale_content {
width: 100%;
display: flex;
overflow: hidden;
height: 100%;
.flash_sale_content_item {
position: relative;
display: inline-block;
width: 48%;
// height: 300rpx;
background-color: #fff;
float: left;
border-radius: 10rpx;
// overflow: hidden;
margin-right: 4%;
overflow: hidden;
margin-bottom: 20rpx;
}
.active_price {
position: absolute;
top: 0rpx;
right: 0rpx;
width: 70rpx;
height: 72rpx;
background-repeat: no-repeat;
line-height: 50rpx;
background-size: 100% 100%;
background-image: url("@/static/icon/taihuactiveprice.png");
color: #fff;
font-size: 20rpx;
font-weight: bold;
text-align: center;
// margin-top: -10rpx;
// box-shadow: 0 0 30px 0 rgb(255, 255, 255);
}
.flash_sale_content_item:nth-child(2n) {
margin-right: 0;
}
.book_image {
width: 100%;
height: 192rpx;
// border-radius: 10rpx;
background-color: #e9e9e9;
}
.book_content {
padding: 20rpx 15rpx 10rpx;
}
.book_name {
font-family: MicrosoftYaHei;
font-weight: 600;
font-size: 24rpx;
line-height: 24rpx;
height: 50rpx;
color: #020001;
// text-align: center;
// margin-top: 18rpx;
letter-spacing: 1rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.scroll-X {
width: 100%;
height: 100%;
white-space: nowrap;
}
.commonPageBox {
// padding-bottom: 50rpx;
// box-sizing: border-box;
}
.noticeIcon {
width: 20rpx;
}
.u-notice-bar {
background-color: transparent !important;
}
.bottomBox {
width: 100%;
height: 200rpx;
display: flex;
align-items: center;
justify-content: space-between;
.item_img {
width: 48% !important;
height: 100%;
image {
width: 100%;
height: 100%;
}
}
}
.book_price {
display: flex;
align-items: center;
}
.book_price_current {
color: #ff5b36;
font-weight: bold;
.price_icon {
font-size: 22rpx;
}
}
.book_price_old {
color: #9c9a9b;
font-size: 20rpx;
margin-left: 10rpx;
// margin-top: -4rpx;
font-weight: normal;
text-decoration: line-through;
}
.sumSales {
color: #6c6c6c;
font-size: 20rpx;
font-weight: normal;
}
.bottom {
display: flex;
align-items: center;
justify-content: space-between;
}
/deep/.list_item {
background-color: #fff;
display: flex;
align-items: center !important;
border-bottom: none;
padding: 10rpx 0 !important;
padding-right: 10rpx !important;
margin-bottom: 10rpx;
border-radius: 10rpx;
padding-left: 20rpx !important;
font-size: 24rpx;
font-weight: bold;
color: #020001;
.rightArrow {
width: 28rpx;
height: 28rpx;
}
.titleItem {
}
}
/deep/.scroll-view-item:nth-child(2n-1) {
// background-color: #edfcf7 !important;
background-color: #fff !important;
}
</style>

View File

@@ -0,0 +1,177 @@
<template>
<view class="container">
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<z-nav-bar :title="prescriptDetail.title" bgColor="#3AB3AE" fontColor="#fff"></z-nav-bar>
<view
class="contentBox"
v-if="prescriptDetail.type == 0"
>
<view class="content">
<!-- <uni-section class="mb-10" titleFontSize="18px" title="标题" type="line"> -->
<view class="item title-center">
{{ prescriptDetail.title }}
</view>
<!-- </uni-section> -->
<!-- <uni-section class="mb-10" titleFontSize="18px" title="内容" type="line"> -->
<view class="item" v-html="prescriptDetail.content"> </view>
<!-- </uni-section> -->
<!-- <view class="item" v-html="prescriptDetail.content">
</view> -->
</view>
</view>
<view class="fullscreen-webview" v-else>
<web-view :src="prescriptDetail.url"> </web-view>
</view>
<music-play :playData="playData"></music-play>
</view>
</template>
<script>
import musicPlay from "@/components/music.vue";
import $http from "@/config/requestConfig.js";
export default {
data() {
return {
playData: {},
prescriptDetail: {
images: [],
},
id: null,
indicatorDots: true,
autoplay: true,
interval: 5000,
duration: 500,
};
},
onLoad(e) {
this.id = e.id;
},
onShow() {
this.getDetail();
},
methods: {
// 放大图片
previewImage(url) {
console.log(url);
uni.previewImage({
urls: [url],
longPressActions: {
itemList: ["很抱歉,暂不支持保存图片到本地"],
success: function (res) {
// console.log(res,'+++++')
},
},
});
},
// 方剂详情
getDetail() {
$http
.request({
url: "common/message/getMessageById?id=" + this.id,
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
// loadAnimate: 'none', // 请求加载动画
// 'prescriptId': this.prescriptId
},
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then((res) => {
console.log(res, "内容获取成功");
if (res.code == 0) {
this.prescriptDetail = res.result;
if (
this.prescriptDetail.content &&
this.prescriptDetail.contentType == 1
) {
this.prescriptDetail.content = res.result.content.replace(
/<img/g,
'<img style="max-width: 100%;"'
);
}
// if (this.prescriptDetail.image) {
// this.prescriptDetail.images = this.prescriptDetail.image.split(';');
// }
}
})
.catch((e) => {
// this.titleList = []
console.log(e);
});
},
},
components: {
musicPlay,
},
};
</script>
<style lang="scss" scoped>
.contentBox {
padding-bottom: 20rpx;
}
.contentBoxwebwiew {
height: 100%;
// .webwiew{
// height: 100%;
// }
}
.fullscreen-webview {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.mb-10 {
margin-bottom: 10px;
}
.content {
font-size: 28rpx;
}
.swiper-item {
image {
margin: 0 auto;
height: 250rpx;
}
}
.uni-margin-wrap {
margin-bottom: 20rpx;
padding-top: 20rpx;
background-color: #fff;
}
.container {
padding: 10rpx;
// background-color: #fff;
.item {
// color: #666;
padding: 10rpx 20rpx;
padding-bottom: 20rpx;
line-height: 46rpx;
}
.title-center {
text-align: center;
font-size: 32rpx;
font-weight: 700 !important;
}
}
.flexbox {
display: flex;
}
/deep/ .uni-section-header__decoration.line {
background-color: #18bc37;
}
</style>

View File

@@ -1,327 +1,378 @@
<template>
<view v-if="show">
<swiper class="guide_pages_swiper" indicator-dots="true" indicator-color="#d1d1d1"
indicator-active-color="#54a966">
<swiper-item>
<view class="guide_pages_bg1">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
</swiper-item>
<swiper-item>
<view class="guide_pages_bg2">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
</swiper-item>
<swiper-item>
<view class="guide_pages_bg3">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
</swiper-item>
<swiper-item>
<view class="guide_pages_bg4">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
<button v-if="screenHeight > 667" style="color: #fff; border-color: #fff"
class="guide_pages_close close_1624" @click="onClose">
开始使用
</button>
<button v-else class="guide_pages_close close_btj" @click="onClose"
style="color: #fff; border-color: #fff">
开始使用
</button>
</swiper-item>
</swiper>
<u-popup :show="protocolShow" mode="center" round="6">
<view class="popup_box">
<view class="title">温馨提示</view>
<view class="content">
<view class="top">尊敬的用户感谢您信任并使用众妙之门</view>
<view class="center">众妙之门非常重视您的隐私保护和个人信息保护在您使用众妙之门提供的产品或服务前请务必仔细阅读<text class="aui-text-success"
@click="openDetail(1)">用户协议</text><text class="aui-text-success"
@click="openDetail(2)">隐私政策</text>全部条款众妙之门可能会收集您的相关使用信息个人信息未经授权众妙之门不会向任何第三方提供您的信息
</view>
<view class="bottom">
如您点击同意代表您已阅读并同意<text class="aui-text-success" @click="openDetail(1)">用户协议</text><text
class="aui-text-success"
@click="openDetail(2)">隐私政策</text>的全部条款众妙之门会尽全力保障您的合法权益并为您提供更优质的产品和服务
<view v-if="show">
<swiper
class="guide_pages_swiper"
indicator-dots="true"
indicator-color="#d1d1d1"
indicator-active-color="#54a966"
>
<swiper-item>
<view class="guide_pages_bg1">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
</swiper-item>
<swiper-item>
<view class="guide_pages_bg2">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
</swiper-item>
<swiper-item>
<view class="guide_pages_bg3">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
</swiper-item>
<swiper-item>
<view class="guide_pages_bg4">
众妙之门
<br />
融儒文为一体<br />
带你感受国学之美
</view>
<button
v-if="screenHeight > 667"
style="color: #fff; border-color: #fff"
class="guide_pages_close close_1624"
@click="onClose"
>
开始使用
</button>
<button
v-else
class="guide_pages_close close_btj"
@click="onClose"
style="color: #fff; border-color: #fff"
>
开始使用
</button>
</swiper-item>
</swiper>
<u-popup :show="protocolShow" mode="center" round="6">
<view class="popup_box">
<view class="title">温馨提示</view>
<view class="content">
<view class="top">尊敬的用户感谢您信任并使用众妙之门</view>
<view class="center"
>众妙之门非常重视您的隐私保护和个人信息保护在您使用众妙之门提供的产品或服务前请务必仔细阅读<text
class="aui-text-success"
@click="openDetail(1)"
>用户协议</text
><text class="aui-text-success" @click="openDetail(2)"
>隐私政策</text
>全部条款众妙之门可能会收集您的相关使用信息个人信息未经授权众妙之门不会向任何第三方提供您的信息
</view>
<view class="bottom">
如您点击同意代表您已阅读并同意<text
class="aui-text-success"
@click="openDetail(1)"
>用户协议</text
><text class="aui-text-success" @click="openDetail(2)"
>隐私政策</text
>的全部条款众妙之门会尽全力保障您的合法权益并为您提供更优质的产品和服务
<view class="button_box">
<u-button size="small" text="不同意" @click="onDisagree"></u-button>
<u-button text="同意" color="#3AB3AE" size="small" @click="close"></u-button>
</view>
</view>
</view>
</view>
</u-popup>
<u-popup :show="DisagreeProtocolShow" mode="center" round="6">
<view class="popup_box">
<view class="title" style="text-align: center; color: #333">温馨提示</view>
<view class="content">
<view class="center">我们非常重视对您个人信息的保护如不同意很遗憾我们将无法提供服务</view>
<view class="button_box">
<u-button
size="small"
text="不同意"
@click="onDisagree"
></u-button>
<u-button
text="同意"
color="#3AB3AE"
size="small"
@click="close"
></u-button>
</view>
</view>
</view>
</view>
</u-popup>
<u-popup :show="DisagreeProtocolShow" mode="center" round="6">
<view class="popup_box">
<view class="title" style="text-align: center; color: #333"
>温馨提示</view
>
<view class="content">
<view class="center"
>我们非常重视对您个人信息的保护如不同意很遗憾我们将无法提供服务</view
>
<view class="button_box">
<u-button color="#b0b0b0" size="small" :plain="true" text="退出应用" @click="quit"></u-button>
<u-button color="#3AB3AE" text="再次查看" :plain="true" size="small" @click="onSee"></u-button>
</view>
</view>
</view>
</u-popup>
</view>
<view class="button_box">
<u-button
color="#b0b0b0"
size="small"
:plain="true"
text="退出应用"
@click="quit"
></u-button>
<u-button
color="#3AB3AE"
text="再次查看"
:plain="true"
size="small"
@click="onSee"
></u-button>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import {
mapState,
mapMutations
} from "vuex";
export default {
data() {
return {
screenHeight: 667,
show: false,
protocolShow: false,
DisagreeProtocolShow: false,
};
import {
mapState,
mapMutations
} from "vuex";
export default {
data() {
return {
screenHeight: 667,
show: false,
protocolShow: false,
DisagreeProtocolShow: false,
};
},
onReady() {
// this.show = false;
if (uni.getStorageSync("guidePages") != 2) {
let systemInfo = uni.getSystemInfoSync();
this.screenHeight = systemInfo.screenHeight;
this.show = true;
// this.protocolShow = true;
}
// else {
// uni.switchTab({
// // url: "/pages/advertisement/index/index",
// url: "/pages/homePage/index/index",
// success: function() {
// let page = getCurrentPages()[0];
// console.log(page);
// page.$vm.requestAll();
// },
// });
// }
},
methods: {
openDetail(type) {
console.log('type at line 152:', type)
uni.navigateTo({
url: "/pages/advertisement/index/detail?type=" + type,
});
},
created() {
this.show = false;
this.protocolShow = false;
this.DisagreeProtocolShow = false;
if (uni.getStorageSync("guidePages") != 2) {
let systemInfo = uni.getSystemInfoSync();
this.screenHeight = systemInfo.screenHeight;
this.show = true;
// this.protocolShow = true;
} else {
uni.switchTab({
url: "/pages/homePage/index/index",
success: function() {
let page = getCurrentPages()[0];
console.log(page);
page.$vm.requestAll();
},
quit() {
if (uni.getSystemInfoSync().platform === "ios") {
plus.runtime.launchApplication({
action: "QUIT"
});
} else {
plus.runtime.quit();
}
},
methods: {
openDetail(type) {
console.log('type at line 152:', type)
uni.navigateTo({
url: "/pages/advertisement/index/detail?type=" + type,
});
},
quit() {
if (uni.getSystemInfoSync().platform === "ios") {
plus.runtime.launchApplication({
action: "QUIT"
});
} else {
plus.runtime.quit();
}
},
onSee() {
this.protocolShow = true;
this.DisagreeProtocolShow = false;
},
onDisagree() {
this.protocolShow = false;
this.DisagreeProtocolShow = true;
},
close() {
this.protocolShow = false;
},
onClose() {
uni.setStorageSync("guidePages", 2);
this.show = false;
this.protocolShow = false;
uni.redirectTo({
url: "/pages/user/login/login",
});
},
onSee() {
this.protocolShow = true;
this.DisagreeProtocolShow = false;
},
};
onDisagree() {
this.protocolShow = false;
this.DisagreeProtocolShow = true;
},
close() {
this.protocolShow = false;
},
onClose() {
uni.setStorageSync("guidePages", 2);
this.show = false;
this.protocolShow = false;
uni.redirectTo({
url: "/pages/user/login/login",
});
},
},
};
</script>
<style lang="scss">
.guide_pages_swiper {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: #000;
z-index: 10000;
@import '@/style/mixin.scss';
.guide_pages_swiper {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: #000;
z-index: 10000;
image {
width: 100vw;
height: 100vh;
}
image {
width: 100vw;
height: 100vh;
}
.guide_pages_bg1 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_1.png") no-repeat bottom center;
background-size: cover;
// background-color: #4CD964;
display: flex;
align-items: center;
justify-content: center;
color: #000;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg1 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_1.png") no-repeat bottom center;
background-size: cover;
// background-color: #4CD964;
display: flex;
align-items: center;
justify-content: center;
color: #000;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg2 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_2.jpg") no-repeat;
background-size: cover;
// background-color: #007AFF;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg2 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_2.jpg") no-repeat;
background-size: cover;
// background-color: #007AFF;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg3 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_3.png") no-repeat;
background-size: cover;
// background-color: #EA552D;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg4 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_4.jpg") no-repeat;
background-size: cover;
// background-color: #EA552D;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg3 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_3.png") no-repeat;
background-size: cover;
// background-color: #EA552D;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_bg4 {
width: 100vw;
height: 100vh;
background: url("@/static/icon/e_0ban_4.jpg") no-repeat;
background-size: cover;
// background-color: #EA552D;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 46rpx;
font-weight: bold;
line-height: 80rpx;
}
.guide_pages_close {
border: 2rpx solid #000;
color: #000;
line-height: 68rpx;
height: 68rpx;
}
.guide_pages_close {
border: 2rpx solid #000;
color: #000;
line-height: 68rpx;
height: 68rpx;
}
.close_btj {
position: absolute;
top: 50%;
left: 50%;
width: 290rpx;
height: 68rpx;
transform: translateX(-50%) translateY(438rpx);
background-color: transparent;
}
.close_btj {
position: absolute;
top: 50%;
left: 50%;
width: 290rpx;
height: 68rpx;
transform: translateX(-50%) translateY(438rpx);
background-color: transparent;
}
.close_1624 {
position: absolute;
top: 50%;
left: 50%;
width: 290rpx;
height: 68rpx;
background-color: transparent;
transform: translateX(-50%) translateY(412rpx);
}
}
.close_1624 {
position: absolute;
top: 50%;
left: 50%;
width: 290rpx;
height: 68rpx;
background-color: transparent;
transform: translateX(-50%) translateY(412rpx);
}
}
.title {
font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
font-weight: normal;
font-size: 46rpx;
color: #3ab3ae;
background-color: #f5f5f5;
// line-height: 46rpx;
padding: 20rpx;
// border-leradius: 6px;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
}
.title {
font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
font-weight: normal;
font-size: 46rpx;
color: $themeColor;
background-color: #f5f5f5;
// line-height: 46rpx;
padding: 20rpx;
// border-leradius: 6px;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
}
.aui-text-success {
color: #3ab3ae;
}
.aui-text-success {
color: $themeColor;
}
.popup_box {
padding-bottom: 20rpx;
width: 85vw;
overflow: hidden;
position: relative;
height: auto;
.popup_box {
padding-bottom: 20rpx;
width: 85vw;
overflow: hidden;
position: relative;
height: auto;
.content {
font-size: 32rpx;
letter-spacing: 0.15rpx;
padding: 20rpx;
color: #3f3f3f;
.content {
font-size: 32rpx;
letter-spacing: 0.15rpx;
padding: 20rpx;
color: #3f3f3f;
.top {
margin: 30rpx 0;
}
.top {
margin: 30rpx 0;
}
.center {
line-height: 40rpx;
// padding:0 10rpx;
}
.center {
line-height: 40rpx;
// padding:0 10rpx;
}
.bottom {
width: 100%;
margin-top: 60rpx;
.bottom {
width: 100%;
margin-top: 60rpx;
font-size: 28rpx;
line-height: 32rpx;
color: #b0b0b0;
}
}
}
font-size: 28rpx;
line-height: 32rpx;
color: #b0b0b0;
}
}
}
.button_box {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20rpx;
.button_box {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20rpx;
.u-button {
margin-left: 40rpx;
}
.u-button {
margin-left: 40rpx;
}
.u-button:nth-child(1) {
margin-left: 0;
}
}
.u-button:nth-child(1) {
margin-left: 0;
}
}
/deep/.uni-swiper-dot-active {
color: #3ab3ae !important;
}
</style>
/deep/.uni-swiper-dot-active {
color: $themeColor !important;
}
</style>

View File

@@ -1165,7 +1165,7 @@ export default {
.oldPrice {
background-color: #ff000013;
;
padding: 4rpx 14rpx;
border-radius: 20rpx;
margin-left: 20rpx;

View File

@@ -456,17 +456,18 @@ export default {
this.ordersTabCLi(this.ordersTabs[0], 0);
});
},
onReady() {
// this.newList = [];
// this.pagination = {
// page: 1, //页码
// limit: 20, //每页显示
// total: 0, //总条数
// };
// this.$nextTick(() => {
// this.ordersTabCLi(this.ordersTabs[0],0);
// });
onTabItemTap() {
this.newList = [];
this.pagination = {
page: 1, //页码
limit: 20, //每页显示
total: 0, //总条数
};
this.$nextTick(() => {
this.ordersTabCLi(this.ordersTabs[0], 0);
});
},
onReady() {},
computed: {
...mapState(["userInfo"]),
},
@@ -533,7 +534,7 @@ export default {
});
},
getBookList(flag, refreshflag) {
this.isLoadingHide=false
this.isLoadingHide = false;
var that = this;
// 根据tab不同获取最新书评、最热书评、书集列表
// uni.showLoading({
@@ -555,7 +556,7 @@ export default {
})
.then((res) => {
that.map = res.map;
that.ordersTabs.map((e) => {
if (e.value == 0 || e.value == 1 || e.value == 2) {
if (that.map[e.value] > 0) {
@@ -594,8 +595,8 @@ export default {
.then((res) => {
console.log(res, "内容获取成功");
that.pagination.total = res.page.total;
if(res.page.total==0){
this.isLoadingHide=true
if (res.page.total == 0) {
this.isLoadingHide = true;
}
if (res.code == 0 && res.page && res.page.records.length > 0) {
that.newList = that.newList.concat(res.page.records);

View File

@@ -1210,6 +1210,7 @@
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.AC_List {
width: 100%;
overflow: hidden;
@@ -1295,7 +1296,7 @@
height: 80rpx !important;
border-radius: 80rpx;
background-color: #d8f8e4;
color: #3ab3ae;
color: $themeColor;
font-size: 34rpx;
font-weight: bold;
text-align: center;
@@ -1305,10 +1306,10 @@
}
.isDefault {
color: #3ab3ae;
color: $themeColor;
font-size: 22rpx;
font-weight: 600;
border: 1rpx solid #3ab3ae;
border: 1rpx solid $themeColor;
padding: 2rpx 10rpx;
border-radius: 6rpx;
line-height: 30rpx;

View File

@@ -792,6 +792,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
/deep/.list_item {
// border-bottom: none;
padding-left: 0 !important;
@@ -896,7 +897,7 @@ export default {
color: #3ab3ae;
font-size: 22rpx;
font-weight: 600;
border: 1rpx solid #3ab3ae;
border: 1rpx solid $themeColor;
padding: 2rpx 10rpx;
border-radius: 6rpx;
line-height: 30rpx;

View File

@@ -1,6 +1,6 @@
<template>
<view style="width: 100%; height: 100%">
<scroll-view @scrolltolower="lower" scroll-y="true" class="scroll-Y" v-if="dataList.length > 0">
<scroll-view @scrolltolower="lower" scroll-y="true" class="scroll-Y" v-if="dataList.length > 0" style="height: 100%">
<view
@click="gotoDetail(item,index)"
class="scroll-view-item list_item"

View File

@@ -160,6 +160,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.goods_item {
overflow: hidden;
display: flex;
@@ -207,14 +208,14 @@ export default {
}
}
.isSelectGoods {
color: #3ab3ae !important;
color: $themeColor !important;
.name {
color: #3ab3ae !important;
color: $themeColor !important;
}
.price {
color: #3ab3ae !important;
color: $themeColor !important;
}
border: 2rpx solid #3ab3ae;
border: 2rpx solid $themeColor;
border-radius: 10rpx;
}
/deep/.list_item {

View File

@@ -304,6 +304,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.commonPageBox {
padding: 40rpx 0;
}
@@ -352,14 +353,14 @@ export default {
}.rightButton{
font-size: 48rpx;
text-align: center;
color: #3ab3ae;
color: $themeColor;
}
.cate_item_box {
width: 100%;
height: auto;
display: flex;
align-items: center;
background-color: #3ab3ae; padding: 0 20rpx;
background-color: $themeColor; padding: 0 20rpx;
.cate_item_border {

View File

@@ -17,20 +17,29 @@
</block>
</view>
<view
<view
@click="close"
class="closeBox"
style="background-color: #fff; margin-top: 20rpx; width: 100%"
>
<image src="@/static/icon/close.png" mode="widthFix"></image
<image
src="@/static/icon/close.png"
mode="widthFix"
style="width: 50rpx; height: 50rpx"
></image
></view>
</view>
<view class="closeBox" v-else @click="isOpenRightButton = true">
<image src="@/static/icon/open.png" mode="widthFix"></image>
<image
src="@/static/icon/open.png"
mode="widthFix"
style="width: 50rpx; height: 50rpx"
></image>
</view>
</view>
<scroll-view
scroll-y
:style="`height:calc(100vh - ${(110 + statusBarHeight) * 2}rpx)`"
class="scroll"
:scroll-into-view="viewid"
scroll-with-animation
@@ -208,27 +217,16 @@ export default {
// this.h = data.top+69
})
.exec();
// selectorQuery
// .selectAll(".right-item")
// .boundingClientRect(function (rects) {
// console.log("rects at line 182:", rects);
// rects.forEach(function (rect) {
// that.distanceList.push(rect.top);
// });
// console.log("that.distanceList", that.distanceList);
// })
// .exec();
},
// 元素滚动到顶部时,对应的左侧导航栏变为选中状态
scrollEvt(e) {
console.log("e at line 204:", e);
// 点击左侧导航栏引起的滚动不做判断
// if(this.isLeftClick){
// this.isLeftClick = false
// return
// }
if (this.isLeftClick) {
this.isLeftClick = false;
return;
}
// // 防抖
if (this.timer) {
clearTimeout(this.timer);
@@ -390,6 +388,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.commonPageBox {
padding: 40rpx 0;
}
@@ -435,11 +434,10 @@ export default {
border: 2rpx solid #eee;
width: 160rpx;
line-height: 80rpx;
box-shadow: 0 0px 10rpx 2px #3ab3ae33;
box-shadow: 0 0px 10rpx 2px $themeColor;
border-radius: 10rpx;
}
.scroll {
height: calc(100vh - 200rpx);
}
.scroll view {
@@ -450,7 +448,7 @@ export default {
// background-color: #fff;
font-size: 34rpx;
text-align: center;
// color: #3ab3ae;
// color: $themeColor;
}
.cate_item_box {
width: 100%;
@@ -489,10 +487,10 @@ export default {
}
}
.hot {
color: #3ab3ae !important;
color: $themeColor !important;
}
.hotButton {
background-color: #3ab3ae;
background-color: $themeColor;
color: #fff !important;
}
.closeBox {
@@ -502,7 +500,7 @@ export default {
border-radius: 80rpx;
display: flex;
align-items: center;
box-shadow: 0 0px 10rpx 1px #3ab3ae33;
box-shadow: 0 0px 10rpx 1px $themeColor;
justify-content: center;
overflow: hidden;
image {

View File

@@ -22,16 +22,19 @@
class="closeBox"
style="background-color: #fff; margin-top: 20rpx; width: 100%"
>
<image src="@/static/icon/close.png" mode="widthFix"></image
<image src="@/static/icon/close.png" mode="widthFix" style=" width: 50rpx;
height: 50rpx;"></image
></view>
</view>
<view class="closeBox" v-else @click="isOpenRightButton = true">
<image src="@/static/icon/open.png" mode="widthFix"></image>
<image src="@/static/icon/open.png" mode="widthFix" style=" width: 50rpx;
height: 50rpx;"></image>
</view>
</view>
<scroll-view
scroll-y
class="scroll"
:style="`height:calc(100vh - ${(100 + statusBarHeight) * 2}rpx)`"
:scroll-into-view="viewid"
scroll-with-animation
@scroll="scrollEvt"
@@ -67,7 +70,6 @@
noDataIcon="data"
:isCondition="true"
:isNoIcon="true"
@lower="onReachBottom1"
:dataList="v.courseList"
label="title"
@@ -359,10 +361,10 @@ export default {
scrollEvt(e) {
console.log("e at line 204:", e);
// 点击左侧导航栏引起的滚动不做判断
// if(this.isLeftClick){
// this.isLeftClick = false
// return
// }
if (this.isLeftClick) {
this.isLeftClick = false;
return;
}
// // 防抖
if (this.timer) {
clearTimeout(this.timer);
@@ -524,6 +526,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.commonPageBox {
padding: 40rpx 0;
}
@@ -569,11 +572,10 @@ export default {
border: 2rpx solid #eee;
width: 80rpx;
line-height: 80rpx;
box-shadow: 0 0px 10rpx 2px #3ab3ae33;
box-shadow: 0 0px 10rpx 2px $themeColor;
border-radius: 10rpx;
}
.scroll {
height: calc(100vh - 200rpx);
}
.scroll view {
@@ -584,7 +586,7 @@ export default {
// background-color: #fff;
font-size: 34rpx;
text-align: center;
// color: #3ab3ae;
// color: $themeColor;
}
.cate_item_box {
width: 100%;
@@ -623,10 +625,10 @@ export default {
}
}
.hot {
color: #3ab3ae !important;
color: $themeColor !important;
}
.hotButton {
background-color: #3ab3ae;
background-color: $themeColor;
color: #fff !important;
}
.closeBox {
@@ -636,7 +638,7 @@ export default {
border-radius: 80rpx;
display: flex;
align-items: center;
box-shadow: 0 0px 10rpx 1px #3ab3ae33;
box-shadow: 0 0px 10rpx 1px $themeColor;
justify-content: center;
overflow: hidden;
image {

File diff suppressed because it is too large Load Diff

View File

@@ -13,6 +13,7 @@
<view class="contentBox commonPageContentBox">
<u-alert
style="position: fixed; width: 100%; z-index: 10"
type="warning"
@click="handleClickGetGoodsList"
:title="goBuyTitle"
@@ -22,9 +23,16 @@
<template slot="rightSlot" slot-scope="slotProps">
<!-- {{ slotProps.row.bxType }} -->
<text :class="`fdButtonBox ${cateList[currentCateIndex].type == 0 ?'':'aui-text-danger fdButtonBoxRed'} `">{{
cateList[currentCateIndex].type == 0 ? "开始学习" : "立即购买"
}}</text>
<text
:class="`fdButtonBox ${
cateList[currentCateIndex].type == 0
? ''
: 'aui-text-danger fdButtonBoxRed'
} `"
>{{
cateList[currentCateIndex].type == 0 ? "开始学习" : "立即购买"
}}</text
>
<view> </view>
</template>
@@ -34,7 +42,11 @@
:src="curriculumData.image"
mode="widthFix"
class="headImage"
style="height: auto !important"
:style="`height: auto !important;${
cateList.length > 0 && cateList[currentCateIndex].isBuy == 0
? 'padding-top:80rpx'
: ''
}`"
@click="previewImage(curriculumData.image)"
>
</image>
@@ -57,11 +69,15 @@
<view style="font-weight: 600; color: #018f89; margin-bottom: 20rpx"
>介绍</view
>
<rich-text
v-if="curriculumData.content"
:nodes="curriculumData.content"
:data-nodes="curriculumData.content"
></rich-text>
<common-rich-detail v-if="curriculumData.content" :detailInfo="{content:curriculumData.content?curriculumData.content:''}" style="padding: 10rpx">
<template #richHeadImg>
<!-- <image :src="curriculumData.imgUrl" mode="widthFix" class="headImage"></image> -->
<!-- <image :src="detailInfo.imgUrl" v-if="detailInfo.imgUrl" mode="widthFix" class="headImage"></image> -->
</template>
</common-rich-detail>
</view>
<!-- <view class="buy">购买</view> -->
</view>
@@ -151,7 +167,7 @@
<text
class="fdButtonBox aui-text-success"
v-if="slotProps.rowIndex < 3"
v-if="slotProps.row.isAudition == 1"
>试听</text
>
@@ -339,8 +355,8 @@ export default {
curriculumInfo: {},
fdButtonStyle: {
width: "120rpx",
"border-color": "#3AB3AE",
color: "#3AB3AE",
"border-color": "$themeColor",
color: "$themeColor",
float: "right",
"margin-right": "20rpx",
"margin-left": "30rpx",
@@ -611,7 +627,10 @@ export default {
// return;
// }
if (this.cateList[this.currentCateIndex].isBuy == 1 || index < 3) {
if (
this.cateList[this.currentCateIndex].isBuy == 1 ||
v.isAudition == 1
) {
uni.navigateTo({
// url: '../bookShop/commodityDetail?id=' + item.id
url: `/pages/curriculum/order/curriculum/detail?navTitle=${v.title}&title=${v.title}&id=${v.id}&conditions=${v.conditions}&detailOid=${v.detailOid}`,
@@ -821,6 +840,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.u-grid-list {
// height: 40rpx;
}
@@ -857,7 +877,7 @@ export default {
}
.cur {
background-color: #3ab3ae;
background-color: $themeColor;
color: #fff;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}
@@ -873,7 +893,7 @@ export default {
}
.cur {
color: #3ab3ae;
color: $themeColor;
}
// .u-grid-list{border: 0.5px solid #dadbde;}
@@ -918,7 +938,7 @@ export default {
padding: 0upx 40upx;
background-color: #fff;
border-radius: 20upx;
box-shadow: 0 0px 10px 1px #3ab3ae33;
box-shadow: 0 0px 10px 1px $themeColor;
}
.prompt {
@@ -980,8 +1000,8 @@ export default {
}
.fdButtonBox {
border: 1rpx solid #3ab3ae;
background-color: #3ab3ae;
border: 1rpx solid $themeColor;
background-color: $themeColor;
color: #fff;
// width: 100%;
float: right;
@@ -1234,17 +1254,17 @@ export default {
}
.isSelectGoods {
color: #3ab3ae !important;
color: $themeColor !important;
.name {
color: #3ab3ae !important;
color: $themeColor !important;
}
.price {
color: #3ab3ae !important;
color: $themeColor !important;
}
border: 2rpx solid #3ab3ae;
border: 2rpx solid $themeColor;
border-radius: 10rpx;
}
}

View File

@@ -0,0 +1,486 @@
<template>
<view
class="container commonPageBox commonDetailPage"
style="position: relative; height: auto"
>
<!-- <cover-view class="image_box">
<image
src="http://101.201.146.165:8088/curriculum/detailImg/curriculum_20170411123240222.png"
mode="aspectFit"
class="headImage"
style="background-color: #f5f5f5"
>
</image>
</cover-view> -->
<video
@timeupdate="videoTimeUpdateEvent($event)"
ref="videos"
style="width: 100%; height: 60rpx"
autoplay
id="videoId"
controls
:show-progress="true"
:show-fullscreen-btn="false"
object-fit="contain"
class="video-box"
:src="videoUrl"
:poster="`${videoUrl}?x-oss-process=video/snapshot,t_${1},f_jpg`"
@play="playVideo"
>
<!-- <cover-image class="controls-play img" src="http://101.201.146.165:8088/curriculum/detailImg/curriculum_20170411123240222.png"></cover-image>
--></video>
<!-- 倍速 -->
<view class="play-rate" @click="videoPlayRate" v-if="showRate">{{ playbackRate }}x</view>
<!-- 倍速菜单 -->
<ul class="play-rate-menu" :style="{ height: height }" v-if="showRateMenu">
<li
v-for="item in playbackRates"
:key="item"
:class="[{ activeRate: playbackRate === item }, 'play-rate-item']"
@click="changePlayRate(item)"
>
{{ item }}x
</li>
</ul>
</view>
</template>
<script>
import courseDescription from "@/pages/component/commonComponents/list";
import price from "../price/index.vue";
import $http from "@/config/requestConfig.js";
import { mapState } from "vuex";
export default {
components: {
courseDescription, //课程说明
price, //课程价格
},
data() {
return {
playbackRate: 1, // 初始播放速率
showRateMenu: false, //显示播放速率
speedState: 1,
timer: null,
videoUrl: "",
currentTime: 0,
firstTime: 0,
options: {},
videoData: {},
isSetFirstTime: false,
currentVideoTime: "", //初始播放时长(秒)
urlList: {
detail: "sociology/course/getCourseCatalogueChapterDetail",
curriculumInfo: "app/phone.do?getCourseInfo",
},
};
},
async onUnload() {
this.timer = null;
// #ifdef APP-PLUS
uni.navigateTo({
url: "/pages/curriculum/order/curriculum/back",
});
plus.screen.lockOrientation("portrait-primary"); //锁死屏幕方向为竖屏
// plus.screen.lockOrientation("portrait-primary");
// #endif
await this.setVideoTime();
// #ifdef APP-PLUS
// plus.screen.lockOrientation("portrait-primary");
// #endif
},
onLoad(options) {
// uni.navigateTo({
// url: "/pages/curriculum/order/curriculum/back",
// });
// #ifdef APP-PLUS
// plus.screen.lockOrientation("landscape-primary");
// plus.screen.lockOrientation("portrait-primary");
// #endif
},
onHide() {
// this.showSearchList = false
// this.searchList = []
},
computed: {
...mapState(["userInfo"]),
},
methods: {
// 显示倍速
videoPlayRate() {
this.showRateMenu = true
},
// 点击倍速
changePlayRate(rate) {
this.playbackRate = rate
this.videoPlayer.playbackRate(rate)
this.showRateMenu = false
this.hideControls()
},
// 创建倍速按钮
createPlayRateDOM() {
const playRateDom = document.createElement('div')
playRateDom.className = 'full-play-rate'
playRateDom.innerText = `${this.playbackRate}x`
playRateDom.onclick = () => {
const playRateMenuDom = document.querySelector('.full-play-rate-menu')
playRateMenuDom.style.display = 'block'
}
return playRateDom
},
// 创建倍速菜单
createPlayRateMenuDom() {
const playRateMenuDom = document.createElement('ul')
playRateMenuDom.className = `play-rate-menu full-play-rate-menu`
playRateMenuDom.style.height = this.windowWidth + 'px'
playRateMenuDom.style.display = 'none'
let liStr = ''
this.playbackRates.forEach((item) => {
liStr += `
<li class="${this.playbackRate === item ? 'activeRate' : ''} play-rate-item full-play-rate-item">
${item}x
</li>
`
})
playRateMenuDom.innerHTML = liStr
return playRateMenuDom
},
handleSetSpeedRate(rate) {
console.log("rate at line 125:", rate);
let videoContext = uni.createVideoContext("videoId");
videoContext.playbackRate(rate);
speedRate.value = rate;
},
init(options) {
this.options = JSON.parse(options.data);
this.getLive();
this.timer = setInterval(() => {
var that = this;
if (this.currentTime) {
that.setVideoTime();
}
}, 60000 * 10);
},
// 播放进度改变
videoTimeUpdateEvent(e) {
console.log("e at line 78:", e);
this.playTime = parseInt(e.detail.currentTime);
this.allTime = parseInt(e.detail.duration);
console.log("视频播放时长", this.playTime, "视频总时长", this.allTime);
this.recordTime({
time: this.playTime,
});
},
recordTime(data) {
this.currentTime = data.time;
console.log("data at line 54:", data);
var list = [];
if (uni.getStorageSync("videoList")) {
list = JSON.parse(uni.getStorageSync("videoList"));
}
console.log("点击后设置播放时长的方法list at line 65:", list);
var index = list.findIndex((e) => e.id == this.videoData.id);
if (list.length > 0 && index >= 0) {
list[index] = {
...this.videoData,
time: data.time,
};
} else {
list.push({
...this.videoData,
time: data.time,
});
}
uni.setStorageSync("videoList", JSON.stringify(list));
console.log(list, "走接口的方法参数");
},
//是否全屏
fullscreenchange(e) {
if (!e.target.fullScreen) {
uni.navigateBack({
delta: 1,
});
// plus.screen.lockOrientation("default");
}
},
getData(data) {
console.log(
"data at line 这是接口拿回来的时长11111111111111111111:",
this.videoData.userCourseVideoPositionEntity.position
);
if (!this.isSetFirstTime) {
var netWork = this.videoData.userCourseVideoPositionEntity
? this.videoData.userCourseVideoPositionEntity.position
: 0;
var list = [];
if (uni.getStorageSync("videoList")) {
list = JSON.parse(uni.getStorageSync("videoList"));
}
console.log("这是获取接口 设置的起始时长", netWork);
var index = list.findIndex((e) => e.id == this.videoData.id);
if (netWork) {
if (index >= 0) {
this.firstTime =
list[index].time > netWork ? list[index].time : netWork;
} else {
this.firstTime = netWork ? netWork : 0;
}
} else {
if (index >= 0) {
this.firstTime = list[index].time ? list[index].time : 0;
} else {
this.firstTime = 0;
}
}
uni.setStorageSync("videoList", JSON.stringify(list));
console.log(
"list at line 这是设置完第一次初始值9777777777777777777770:",
list
);
console.log(this.firstTime, "1111111111111111111111");
this.playVideo();
this.isSetFirstTime = true;
}
},
setVideoTime(time) {
var data = {
videoId: this.videoData.id,
position: this.currentTime, //秒数
};
console.log("data at line =存储视频时长接口:", data);
$http
.request({
// url: "book/buyOrder/buySave",
url: `sociology/course/saveCoursePosition`,
method: "Post", // POST、GET、PUT、DELETE具体说明查看官方文档
data,
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then((res) => {
console.log("res at line 185:", res);
// console.log("data at line 5911111:", this.videoData);
this.$forceUpdate();
});
},
playVideo(e) {
this.videoContext = uni.createVideoContext("videoId", this);
this.videoContext.seek(this.firstTime);
// this.videoContext.requestFullScreen();
},
async getLive() {
var data = {
...this.options,
};
console.log("data at line 57:", data);
$http
.request({
// url: "book/buyOrder/buySave",
url: `sociology/course/checkVideo`,
method: "Post", // POST、GET、PUT、DELETE具体说明查看官方文档
data,
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then((res) => {
console.log("res at line 252:", res);
this.videoData = res.video;
this.videoUrl =
// "https://ehh-private-01.oss-cn-beijing.aliyuncs.com/video/taiHuClass/" +
res.video.videoUrl;
this.$nextTick(async () => {
await this.getData();
});
// var playAuth = res.video.playAuth.replace(/=/g, "");
// this.videoData = {
// ...res.video,
// videoId: res.video.video,
// playAuth: playAuth,
// };
// this.playAuth = playAuth;
console.log("data at line 5911111:", this.videoData);
this.$forceUpdate();
});
},
openVideo(data) {
console.log("data at line 380:", data.type);
var mynavData = JSON.stringify(data); // 这里转换成 字符串
if (data.type == 0) {
//视频云点播
uni.navigateTo({
url: `/pages/curriculum/order/curriculum/videoDetail?data=${mynavData}`,
});
} else if (data.type == 1) {
uni.navigateTo({
url: `/pages/curriculum/order/curriculum/videoDetailOss?data=${mynavData}`,
});
}
// uni.navigateTo({
// // url: '../bookShop/commodityDetail?id=' + item.id
// url: `/pages/curriculum/order/curriculum/detail?navTitle=${v.title}&title=${v.title}&oid=${v.oid}`,
// });
},
hancleModalCancel() {
this.show = false;
},
handleClickMore(v, i, status) {
console.log("i at line 357:", i);
this.$set(this.correlationiList[i], "isOpen", status);
// [i].=!this.correlationiList[i].isOpen;
},
hancleModalConfirm() {
var data = {
values: {
customerType: "D",
token: uni.getStorageSync("token"),
customerOid: uni.getStorageSync("customerOid"),
...this.taiHuClassInfo,
},
};
// $mars.progressBegin('申请中...');
// $mars.post(customerType, 'applyRelearn', data, function (ret) {
// api.hideProgress();
// fnLoadDataGrid();
// });
},
// 检查是有权限使用搜索功能
checkDisable() {
console.log("点击了");
},
// 显示无权限弹窗
// showNoRights() {
// let that = this
// uni.showModal({
// content: "",
// confirmText: '好的',
// showCancel: false,
// success: function(res) {
// if (res.confirm) {
// // console.log('用户点击确定');
// that.clear()
// }
// }
// })
// },
// 放大图片
previewImage(url) {
console.log(url);
uni.previewImage({
urls: [url],
longPressActions: {
itemList: ["很抱歉,暂不支持保存图片到本地"],
success: function (res) {
// console.log(res,'+++++')
},
},
});
},
},
onBackPress() {
// #ifdef APP-PLUS
plus.key.hideSoftKeybord();
// #endif
},
};
</script>
<style lang="scss" scoped>
.video-box {
position: relative;
}
.image_box {
background-color: red;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.speed {
position: absolute;
right: 20rpx;
top: 16rpx;
.doubleSpeed {
color: #fff;
font-size: 14rpx;
background-color: rgba(0, 0, 0, 0.6);
padding: 4rpx 6rpx;
}
}
// 倍速的蒙版
.speedModal {
background-color: rgba(0, 0, 0, 0.7);
}
.speedNumBox {
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
background-color: #2c2c2c;
width: 120rpx;
position: absolute;
right: 0rpx;
top: 0;
.number {
width: 120rpx;
font-weight: 700;
font-size: 14rpx;
padding: 18rpx 0;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.active {
color: red;
}
.noActive {
color: #fff;
}
}
</style>

View File

@@ -262,8 +262,8 @@ export default {
],
fdButtonStyle: {
width: "120rpx",
"border-color": "#3AB3AE",
color: "#3AB3AE",
"border-color": "$themeColor",
color: "$themeColor",
float: "right",
"margin-right": "20rpx",
"margin-left": "30rpx",
@@ -861,7 +861,7 @@ export default {
};
</script>
<style lang="scss" scoped>
<style lang="scss" scoped>@import '@/style/mixin.scss';
.u-grid-list {
// height: 40rpx;
}
@@ -898,7 +898,7 @@ export default {
}
.cur {
background-color: #3ab3ae;
background-color: $themeColor;
color: #fff;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}
@@ -914,7 +914,7 @@ export default {
}
.cur {
color: #3ab3ae;
color: $themeColor;
}
// .u-grid-list{border: 0.5px solid #dadbde;}
@@ -959,7 +959,7 @@ export default {
padding: 0upx 40upx;
background-color: #fff;
border-radius: 20upx;
box-shadow: 0 0px 10px 1px #3ab3ae33;
box-shadow: 0 0px 10px 1px $themeColor;
}
.prompt {
@@ -1082,7 +1082,7 @@ export default {
.cate_box {
width: 100%;
height: 90rpx;
// background: #3ab3ae;
// background: $themeColor;
border-radius: 7rpx;
// display: flex;

View File

@@ -33,7 +33,7 @@
<view class="goods_box">
<view class="curriulum_title_box">
<view v-if="this.options.isMiaosha" class="miaosha_box">
<view v-if="this.options.isMiaosha==1" class="miaosha_box">
<view class="price_box">
<view class="price_left">
<template
@@ -1462,6 +1462,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.u-grid-list {
// height: 40rpx;
}
@@ -1498,7 +1499,7 @@ export default {
}
.cur {
background-color: #3ab3ae;
background-color: $themeColor;
color: #fff;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}
@@ -1514,7 +1515,7 @@ export default {
}
.cur {
color: #3ab3ae;
color: $themeColor;
}
// .u-grid-list{border: 0.5px solid #dadbde;}
@@ -1622,8 +1623,8 @@ export default {
}
.fdButtonBox {
border: 1rpx solid #3ab3ae;
background-color: #3ab3ae;
border: 1rpx solid $themeColor;
background-color: $themeColor;
color: #fff;
// width: 100%;
float: right;
@@ -2041,14 +2042,14 @@ export default {
}
}
.isSelectGoods {
color: #3ab3ae !important;
color: $themeColor !important;
.name {
color: #3ab3ae !important;
color: $themeColor !important;
}
.price {
color: #3ab3ae !important;
color: $themeColor !important;
}
border: 2rpx solid #3ab3ae;
border: 2rpx solid $themeColor;
border-radius: 10rpx;
}
/deep/.list_item {

View File

@@ -1633,6 +1633,7 @@
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.order_box {
padding: 20rpx;
@@ -1710,8 +1711,8 @@
}
.fdButtonBox {
border: 1rpx solid #3ab3ae;
background-color: #3ab3ae;
border: 1rpx solid $themeColor;
background-color: $themeColor;
color: #fff;
// width: 100%;
float: right;
@@ -1964,7 +1965,7 @@
/* #endif */
justify-content: center;
align-items: center;
color: #3ab3ae;
color: $themeColor;
}
.order_bottom_box {

View File

@@ -125,7 +125,7 @@
<image src="@/static/tab/bottom1.png" mode="aspectFill"></image>
</view>
<view class="item_img">
<image src="@/static/tab/bg.png" mode="aspectFill"></image>
<!-- <image src="@/static/tab/bg.png" mode="aspectFill"></image> -->
</view>
</view>
</view>
@@ -476,6 +476,7 @@
}
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.header_box {
width: 100%;
height: 350rpx;
@@ -537,7 +538,7 @@
.cate_box {
width: 100%;
height: 198rpx;
background: #3ab3ae;
background: $themeColor;
box-shadow: 0rpx 0rpx 6rpx 0rpx rgba(0, 82, 79, 0.65);
border-radius: 7rpx;
display: flex;
@@ -664,7 +665,7 @@
.greenCardBoxTop {
width: 100%;
height: 75rpx;
background-color: #3ab3ae;
background-color: $themeColor;
display: flex;
align-items: center;
justify-content: space-between;

View File

@@ -565,7 +565,7 @@ export default {
display: flex;
align-items: center;
justify-content: space-between;
color: #3ab3ae;
color: $themeColor;
font-weight: 700;
}
@@ -584,7 +584,7 @@ export default {
margin-right: 60rpx;
text-align: center;
display: inline-block;
color: #3ab3ae;
color: $themeColor;
.text {
font-size: 28rpx;
@@ -592,7 +592,7 @@ export default {
font-weight: 700;
// margin: 0 0 10rpx 0;
color: #3ab3ae !important;
color: $themeColor !important;
}
}
@@ -605,7 +605,7 @@ export default {
padding: 10rpx 32rpx;
// margin-top: -60rpx;
// margin: 20rpx 0 0 0;
background-image: linear-gradient(90deg, #3ab3ae 0%, #d5ecdd 200%);
background-image: linear-gradient(90deg, #3AB3AE 0%, #d5ecdd 200%);
}
}
}

View File

@@ -1280,7 +1280,7 @@ export default {
}
.avatar_text {
color: #3ab3ae;
color: $themeColor;
line-height: 60rpx;
font-size: 30rpx;
font-weight: 600;
@@ -1326,7 +1326,7 @@ export default {
background-color: #f8f9fb;
font-size: 28rpx;
padding: 0 14rpx;
color: #3ab3ae;
color: $themeColor;
line-height: 80rpx;
margin: 20rpx 0 0 20rpx;
display: inline-block;

View File

@@ -399,7 +399,7 @@ export default {
.AC_jilu {
font-size: 42rpx;
text-align: left;
color: #3ab3ae;
color: $themeColor;
// background-image: linear-gradient(90deg, #3AB3AE 20%, #c3fade 100%);
// margin-bottom: 30rpx;
padding: 30rpx 20rpx 20rpx;
@@ -657,13 +657,13 @@ export default {
}
}
.Hot {
color: #3ab3ae !important;
color: $themeColor !important;
}
.AC_chong {
display: flex;
align-items: center;
justify-content: space-between;
background-image: linear-gradient(90deg, #3ab3ae 0%, #73ee9c 100%);
background-image: linear-gradient(90deg, #3AB3AE 0%, #73ee9c 100%);
color: #fff;
border-top-left-radius: 15rpx;
border-top-right-radius: 15rpx;

View File

@@ -373,7 +373,7 @@ export default {
.AC_jilu {
font-size: 42rpx;
text-align: left;
color: #3ab3ae;
color: $themeColor;
// background-image: linear-gradient(90deg, #3AB3AE 20%, #c3fade 100%);
// margin-bottom: 30rpx;
padding: 30rpx 20rpx 20rpx;
@@ -631,13 +631,13 @@ export default {
}
}
.Hot {
color: #3ab3ae !important;
color: $themeColor !important;
}
.AC_chong {
display: flex;
align-items: center;
justify-content: space-between;
background-image: linear-gradient(90deg, #3ab3ae 0%, #73ee9c 100%);
background-image: linear-gradient(90deg, #3AB3AE 0%, #73ee9c 100%);
color: #fff;
border-top-left-radius: 15rpx;
border-top-right-radius: 15rpx;

View File

@@ -703,7 +703,7 @@
.cj_title {
font-size: 46rpx;
color: #3ab3ae;
color: $themeColor;
// font-weight: bold;
}
@@ -734,7 +734,7 @@
}
.pr_lj {
background-image: linear-gradient(90deg, #3ab3ae 0%, #d8f8e4 100%);
background-image: linear-gradient(90deg, #3AB3AE 0%, #d8f8e4 100%);
color: #fff;
position: absolute;
top: -30rpx;
@@ -753,7 +753,7 @@
.Tab_cj {
// box-shadow: 0 0 20rpx 0 #fe700bcc;
box-shadow: 0px 0px 3px 0px #3ab3ae !important;
box-shadow: 0px 0px 3px 0px $themeColor !important;
color: #259f9a;
background: #edfcf7 !important;
}
@@ -769,7 +769,7 @@
.cf_title {
font-size: 46rpx;
color: #3ab3ae;
color: $themeColor;
}
.cf_radio {
@@ -812,7 +812,7 @@
bottom: 30rpx;
view {
background-image: linear-gradient(90deg, #3ab3ae 0%, #d8f8e4 100%);
background-image: linear-gradient(90deg, #3AB3AE 0%, #d8f8e4 100%);
color: #fff;
width: 90%;
margin: 0 auto;

View File

@@ -750,7 +750,7 @@ export default {
margin-top: 40rpx;
font-size: 34rpx;
font-weight: bold;
color: #3ab3ae;
color: $themeColor;
}
.emaPho {
@@ -763,9 +763,9 @@ export default {
}
.emaPho > view.active {
color: #3ab3ae;
color: $themeColor;
padding: 10rpx 10rpx;
border-bottom: 2px solid #3ab3ae;
border-bottom: 2px solid $themeColor;
font-weight: bold;
}
@@ -1020,11 +1020,11 @@ export default {
justify-content: center;
margin: 30rpx 0 0 0;
font-size: 26rpx;
color: #3ab3ae;
color: $themeColor;
view {
font-weight: bold;
border: 1px solid #3ab3ae;
border: 1px solid $themeColor;
border-radius: 10rpx;
padding: 5rpx 15rpx;
}

View File

@@ -706,10 +706,11 @@ this.yhxyText=data
await this.$http
.get(this.urlList.registerOrLogin, httpData)
.then(async (res) => {
console.log("res.userInfo at line 593:", res.token);
res.userInfo.token = res.token.token;
await this.setUserInfo(res.userInfo);
console.log("res.userInfo哈哈红红火火恍恍惚惚 at line 593:", res.token);
uni.setStorageSync("token", res.token.token);
// socket.init();
uni.showToast({
title: "登录成功",
@@ -751,6 +752,7 @@ this.yhxyText=data
console.log("res.userInfo at line 593:", res.token);
res.userInfo.token = res.token.token;
await this.setUserInfo(res.userInfo);
uni.setStorageSync("token", res.token.token);
// socket.init();
uni.showToast({
title: "登录成功",
@@ -1152,7 +1154,7 @@ this.yhxyText=data
margin-top: 20rpx;
font-size: 38rpx;
font-weight: bold;
color: #3ab3ae;
color: $themeColor;
}
.emaPho {
@@ -1165,9 +1167,9 @@ this.yhxyText=data
}
.emaPho > view.active {
color: #3ab3ae;
color: $themeColor;
padding: 10rpx 10rpx;
border-bottom: 2px solid #3ab3ae;
border-bottom: 2px solid $themeColor;
font-weight: bold;
}
@@ -1422,11 +1424,11 @@ this.yhxyText=data
justify-content: center;
margin: 50rpx 0 0 0;
font-size: 30rpx;
color: #3ab3ae;
color: $themeColor;
view {
font-weight: bold;
border: 1px solid #3ab3ae;
border: 1px solid $themeColor;
border-radius: 10rpx;
padding: 5rpx 15rpx;
}