This commit is contained in:
2024-12-09 11:23:21 +08:00
parent 9f2fe5e8a0
commit 8135b187a9
13 changed files with 3088 additions and 2820 deletions

View File

@@ -20,11 +20,11 @@
"type" : "uniCloud"
},
{
"playground" : "standard",
"playground" : "custom",
"type" : "uni-app:app-ios"
},
{
"playground" : "standard",
"playground" : "custom",
"type" : "uni-app:app-android"
}
]

335
App.vue
View File

@@ -1,36 +1,30 @@
<script>
import {
music,
bgm
} from '@/utils/music.js'
import {
iap
} from "@/utils/myIapCheck.js";
import store from '@/store/index.js';
import socket from '@/config/socket';
// #ifdef H5
import {
h5Login
} from '@/config/html5Utils';
// #endif
// // #ifdef APP-PLUS
// import APPUpdate from '@/uni_modules/zhouWei-APPUpdate/js_sdk/appUpdate';
// // #endif
// #ifdef APP-PLUS
import updata from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
// #endif
import Vue from 'vue'
import { music, bgm } from "@/utils/music.js";
import { iap } from "@/utils/myIapCheck.js";
import store from "@/store/index.js";
import socket from "@/config/socket";
// #ifdef H5
import { h5Login } from "@/config/html5Utils";
// #endif
// // #ifdef APP-PLUS
// import APPUpdate from '@/uni_modules/zhouWei-APPUpdate/js_sdk/appUpdate';
// // #endif
// #ifdef APP-PLUS
import updata from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
// #endif
import Vue from "vue";
export default {
export default {
data() {
return {
lastCheckTime: 0, // 记录上一次检查时间
platform: null, // 系统
}
};
},
onLaunch: function(e) {
onLaunch: function (e) {
// 检测自动更新
// #ifdef APP-PLUS
updata();
// updata();
// 检测是否有未关闭苹果内购订单
// iap.getChannels();
// console.log('引入了?');
@@ -38,108 +32,110 @@
uni.getSystemInfo({
success(res) {
Vue.prototype.winWidth = res.screenWidth
Vue.prototype.winHeight = res.screenHeight
}
})
Vue.prototype.winWidth = res.screenWidth;
Vue.prototype.winHeight = res.screenHeight;
},
});
// 取出初始播放信息
uni.getStorage({
key: 'playingInfo',
success: function(res) {
console.log(res, 'playingInfo本地初始化')
store.commit('setUserInfo', {
'playingInfo': res.data
})
store.commit('setUserInfo', {
'playTitle': res.data.chapter,
'fengImg': res.data.bookImage
})
console.log(store.state.userInfo, '初始化')
key: "playingInfo",
success: function (res) {
console.log(res, "playingInfo本地初始化");
store.commit("setUserInfo", {
playingInfo: res.data,
});
store.commit("setUserInfo", {
playTitle: res.data.chapter,
fengImg: res.data.bookImage,
});
console.log(store.state.userInfo, "初始化");
},
fail: function(e) {
console.log(e, 'playingInfo本地初始化失败')
store.commit('setUserInfo', {
'playingInfo': {
'images': '../../static/icon/fengziIcon.jpg',
'chapterName': '暂无播放信息',
}
})
store.commit('setUserInfo', {
'playTitle': '暂无播放信息',
'fengImg': '../../static/icon/fengziIcon.jpg'
})
fail: function (e) {
console.log(e, "playingInfo本地初始化失败");
store.commit("setUserInfo", {
playingInfo: {
images: "../../static/icon/fengziIcon.jpg",
chapterName: "暂无播放信息",
},
})
});
store.commit("setUserInfo", {
playTitle: "暂无播放信息",
fengImg: "../../static/icon/fengziIcon.jpg",
});
},
});
// 取出播放列表
uni.getStorage({
key: 'playData',
success: function(res) { // 本地有播放数据就用本地的
console.log(res.data, '取出的本地数据');
key: "playData",
success: function (res) {
// 本地有播放数据就用本地的
console.log(res.data, "取出的本地数据");
if (res.data.myList.length <= 0) {
store.commit('setUserInfo', {
'playVisible': false
})
store.commit("setUserInfo", {
playVisible: false,
});
} else {
music.setList(res.data.myList, '', store.state.userInfo.playIndex)
music.setList(res.data.myList, "", store.state.userInfo.playIndex);
// music.setCoverImg(res.data.fengImg)
store.commit('setUserInfo', res.data)
store.commit("setUserInfo", res.data);
}
store.commit('setUserInfo', {
'playFlag': false
store.commit("setUserInfo", {
playFlag: false,
}); // 设置播放按钮状态为暂停
store.commit('setUserInfo', {
'currentTime': 0
store.commit("setUserInfo", {
currentTime: 0,
});
},
fail: function(e) { // 如果没有,就查询一下线上的播放记录
console.log('本地无数据');
music.setList([])
fail: function (e) {
// 如果没有,就查询一下线上的播放记录
console.log("本地无数据");
music.setList([]);
//store.commit('setUserInfo',{'playingInfo': {'bookid':0,'chapterId':0}});
store.commit('setUserInfo', {
'playVisible': false
})
store.commit('setUserInfo', {
'myList': [],
'fengImg': '../../static/icon/fengziIcon.jpg'
})
store.commit('setUserInfo', {
'playFlag': false
store.commit("setUserInfo", {
playVisible: false,
});
store.commit('setUserInfo', {
'currentTime': 0
store.commit("setUserInfo", {
myList: [],
fengImg: "../../static/icon/fengziIcon.jpg",
});
}
store.commit("setUserInfo", {
playFlag: false,
});
store.commit("setUserInfo", {
currentTime: 0,
});
},
});
// end
// 取出播放弹窗显示或者隐藏
uni.getStorage({
key: 'playVisible',
success: function(res) {
store.commit('setUserInfo', {
'playVisible': res.data
key: "playVisible",
success: function (res) {
store.commit("setUserInfo", {
playVisible: res.data,
}); // 设置是否显示按钮
},
fail: function(e) { // 如果本地没有playVisible数据默认为false
store.commit('setUserInfo', {
'playVisible': false
fail: function (e) {
// 如果本地没有playVisible数据默认为false
store.commit("setUserInfo", {
playVisible: false,
});
}
},
});
//取出缓存数据
store.commit('setCacheData');
store.commit("setCacheData");
// #ifdef MP-WEIXIN
if (store.state.userInfo.token) {
socket.init();
}
// #endif
// #ifdef H5
console.log(store.state)
console.log(store.state);
if (store.state.userInfo.token) {
socket.init();
} else {
h5Login('force', () => {
h5Login("force", () => {
socket.init();
});
}
@@ -150,11 +146,19 @@
}
// APPUpdate();
// #endif
},
onShow: function(e) {
onShow: function (e) {
const interval = 1000 * 60 * 60 * 6; // 检查间隔单位毫秒此处为6小时
const currentTime = Date.now();
if (currentTime - this.lastCheckTime > interval) {
this.lastCheckTime = currentTime; // 更新上一次检查时间
updata();
} else {
console.log("距离上次检查时间过短,不重复检查");
}
// #ifdef APP-PLUS
// updata();
// 检测是否有未关闭苹果内购订单
iap.getChannels();
// console.log('引入了?');
@@ -163,141 +167,144 @@
// #ifdef MP-WEIXIN
//获取二维码携带的参数
let scene = decodeURIComponent(e.query.scene);
scene = scene.split('&');
scene = scene.split("&");
let data = {
//场景值
scene: e.scene
scene: e.scene,
};
scene.forEach(item => {
let arr = item.split('=');
scene.forEach((item) => {
let arr = item.split("=");
if (arr.length == 2) {
data[arr[0]] = arr[1];
}
});
store.commit('setChatScenesInfo', Object.assign(e.query, data));
store.commit("setChatScenesInfo", Object.assign(e.query, data));
//小程序更新
if (uni.getUpdateManager) {
const updateManager = uni.getUpdateManager();
updateManager.onCheckForUpdate(function(res) {
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
// console.log(res.hasUpdate);
});
updateManager.onUpdateReady(function(res) {
updateManager.onUpdateReady(function (res) {
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
title: "更新提示",
content: "新版本已经准备好,是否重启应用?",
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
},
});
});
updateManager.onUpdateFailed(function(res) {
updateManager.onUpdateFailed(function (res) {
// 新的版本下载失败
uni.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
showCancel: false
title: "已经有新版本了哟~",
content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~",
showCancel: false,
});
});
}
// #endif
},
onHide: function() {},
onHide: function () {},
destroyed() {
store.commit('setUserInfo', {
'playFlag': true
})
console.log('页面销毁')
store.commit("setUserInfo", {
playFlag: true,
});
console.log("页面销毁");
},
methods: {}
};
methods: {},
};
</script>
<style lang="scss">
@import "uview-ui/index.scss";
/* #ifndef APP-NVUE */
@import './style/common.scss';
@import './style/input.scss';
@import './style/table.scss';
@import "uview-ui/index.scss";
/* #ifndef APP-NVUE */
@import "./style/common.scss";
@import "./style/input.scss";
@import "./style/table.scss";
page {
page {
height: 100%;
background-color: #f7faf9;
}
}
/* #endif */
/* #endif */
/* #ifdef H5 */
//修复H5底部导航挡住内容bug
uni-app {
/* #ifdef H5 */
//修复H5底部导航挡住内容bug
uni-app {
height: auto;
}
}
/*每个页面公共css */
@font-face {
font-family: 'iconfont';
/*每个页面公共css */
@font-face {
font-family: "iconfont";
/* project id 1997429 */
src: url('https://at.alicdn.com/t/font_1997429_8xzvctxta3u.eot');
src: url('https://at.alicdn.com/t/font_1997429_8xzvctxta3u.eot?#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_1997429_8xzvctxta3u.woff2') format('woff2'),
url('https://at.alicdn.com/t/font_1997429_8xzvctxta3u.woff') format('woff'),
url('https://at.alicdn.com/t/font_1997429_8xzvctxta3u.ttf') format('truetype'),
url('https://at.alicdn.com/t/font_1997429_8xzvctxta3u.svg#iconfont') format('svg');
}
src: url("https://at.alicdn.com/t/font_1997429_8xzvctxta3u.eot");
src: url("https://at.alicdn.com/t/font_1997429_8xzvctxta3u.eot?#iefix")
format("embedded-opentype"),
url("https://at.alicdn.com/t/font_1997429_8xzvctxta3u.woff2")
format("woff2"),
url("https://at.alicdn.com/t/font_1997429_8xzvctxta3u.woff") format("woff"),
url("https://at.alicdn.com/t/font_1997429_8xzvctxta3u.ttf")
format("truetype"),
url("https://at.alicdn.com/t/font_1997429_8xzvctxta3u.svg#iconfont")
format("svg");
}
.iconfont {
.iconfont {
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}
}
//修复H5输入框上下不居中bug
.uni-input-form {
//修复H5输入框上下不居中bug
.uni-input-form {
height: 100%;
}
}
//去除地图上高德地图标识符
.amap-copyright {
//去除地图上高德地图标识符
.amap-copyright {
display: none !important;
}
}
.amap-logo {
.amap-logo {
display: none !important;
}
}
.amap-ui-control-zoom {
.amap-ui-control-zoom {
width: 60upx !important;
}
}
.amap-ui-control-zoom>* {
.amap-ui-control-zoom > * {
width: 60upx !important;
height: 60upx !important;
line-height: 60upx !important;
}
}
.amap-ui-control-theme-dark {
.amap-ui-control-theme-dark {
display: none !important;
}
}
//设置圆角
checkbox.round .wx-checkbox-input,
checkbox.round .uni-checkbox-input {
//设置圆角
checkbox.round .wx-checkbox-input,
checkbox.round .uni-checkbox-input {
border-radius: 100upx;
}
}
//设置背景色
checkbox.checkedItem[checked] .wx-checkbox-input,
checkbox.checkedItem .uni-checkbox-input-checked {
//设置背景色
checkbox.checkedItem[checked] .wx-checkbox-input,
checkbox.checkedItem .uni-checkbox-input-checked {
background-color: #e5a000 !important;
border-color: #e5a000 !important;
color: #ffffff !important;
}
}
/* #endif */
/* #endif */
</style>

View File

@@ -10,11 +10,13 @@ if (process.env.NODE_ENV === 'development') {
// baseUrl = "http://192.168.110.100:9200/pb/"; // 开发用电脑
// baseUrl = "http://59.110.212.44:9200/pb/";
// baseUrl = "http://192.168.110.100:9100/pb/"; // 开发用电脑
// baseUrl = "http://192.168.110.110:9200/pb/";
// baseUrl = "http://192.168.110.110:9200/pb/";//磊哥
// baseUrl = "http://192.168.110.38:9200/pb/"; // 吴春磊笔记本1
// socketUrl = "ws://8.129.186.35:6001/";
} else if (process.env.NODE_ENV === 'production') {
// 生产环境11
// baseUrl = "http://192.168.110.110:9200/pb/";//磊哥
// baseUrl = "http://59.110.212.44:9100/pb/";
// baseUrl = "https://testapi.nuttyreading.com/";
baseUrl = "https://api.nuttyreading.com/"; //1

View File

@@ -86,7 +86,8 @@ Vue.component("mescroll-body", MescrollBody);
// import musicPlay from '@/components/music.vue'
// Vue.component('music-play', musicPlay);
import commonAdvertisement from '@/pages/component/commonComponents/advertisement.vue'
Vue.component('common-advertisement', commonAdvertisement);
App.mpType = 'app'

View File

@@ -10,8 +10,8 @@
"sizes": "分辨率192x192",
"src": "图片路径"
}],
"versionName": "1.2.61",
"versionCode": 1261,
"versionName": "1.2.67",
"versionCode": 1267,
"app-plus": {
"compatible": {
"ignoreVersion": true

View File

@@ -0,0 +1,251 @@
<template>
<view
class="container commonPageBox commonDetailPage"
style="height: auto !important; padding-bottom: 0 !important"
>
<u-popup :show="show" v-if="show" mode="center" class="popup_box">
<div class="product_image" scroll-y="true" style="position: relative">
<swiper
:style="{ height: fullHeight }"
class="swiper-tall"
:indicator-dots="indicatorDots"
:autoplay="autoplay"
:previous-margin="previousMargin"
:next-margin="nextMargin"
:circular="circular"
@change="change"
:current="swiperCurrentIndex"
>
<swiper-item
class="swiper-container"
v-for="(img, index) in list"
:key="index"
:item-id="index"
:data-year="index"
>
<view
@click="gotoDetail(img)"
class="swiper-item"
:style="{
background: img ? 'url(' + img.icon + ') center no-repeat' : '',
backgroundSize: '100% 100%',
}"
:animation="animationData[index]"
>
</view>
</swiper-item>
</swiper>
<view style="display: flex;align-items: center;justify-content: center;">
<view @click="close" style="font-weight: bold;background-color: rgba(255, 255, 255, 0.8); color: #333;padding:20rpx 10rpx;width: 200rpx;font-size: 30rpx;border-radius: 40rpx;text-align: center;letter-spacing: 0.5rpx;">
关闭
</view>
</view>
</div>
</u-popup></view
>
</template>
<script>
const stopPenetrate = () => {
return;
};
import { mapState } from "vuex";
export default {
props: ["list"],
data() {
return {
screenHeight: 0,
animationData: {
0: {},
1: {},
2: {},
},
title: "0",
indicatorDots: false,
autoplay: false,
previousMargin: uni.upx2px(82) + "px",
nextMargin: uni.upx2px(82) + "px",
circular: true,
zoomParam: 1.1,
swiperCurrentIndex: 0,
data: [],
max: 0,
show: false,
};
},
onShow() {
this.show = false;
},
onLoad() {},
onHide() {
// this.showSearchList = false
// this.searchList = []
},
computed: {
...mapState(["userInfo"]),
fullHeight() {
const res = uni.getSystemInfoSync();
return (
res.windowHeight - uni.upx2px(60) - (res.statusBarHeight + 44) + "px"
);
},
},
methods: {
gotoDetail(v) {
console.log("v at line 58:", v);
if (v.relationId) {
if (v.type == 0) {
if (v.shopProduct) {
uni.navigateTo({
url: `/pages/bookShop/commodityDetail?id=${v.shopProduct.productId}`,
});
}
}
}
if (v.type == 1) {
uni.navigateTo({
url: `/pages/peanut/reCharge`,
});
}
// if (v.type == 2) {
// uni.navigateTo({
// url: `/pages/mine/vip/index`,
// });
// }
this.show = false;
},
// 放大图片
previewImage(url) {
console.log(url);
uni.previewImage({
urls: [url],
longPressActions: {
itemList: ["很抱歉,暂不支持保存图片到本地"],
success: function (res) {
// console.log(res,'+++++')
},
},
});
},
change(e) {
this.swiperCurrentIndex = e.detail.current;
this.title = e.detail.currentItemId;
for (let key in this.animationData) {
if (e.detail.currentItemId == key) {
this.animation.scale(this.zoomParam).step();
this.animationData[key] = this.animation.export();
} else {
this.animation.scale(1.0).step();
this.animationData[key] = this.animation.export();
}
}
},
close() {
this.show = false;
},
selectGoods(data) {
this.$emit("selectGoods", data);
},
open() {
this.animation = uni.createAnimation();
this.animation.scale(this.zoomParam).step();
this.animationData[0] = this.animation.export();
this.show = true;
},
onHandleClickBuy() {
this.$emit("selectGoodsData", this.selectGoodsData);
this.$emit("onHandleClickBuy");
},
},
onBackPress() {
// #ifdef APP-PLUS
plus.key.hideSoftKeybord();
// #endif
},
components: {},
};
</script>
<style lang="scss" scoped>
@import "@/style/mixin.scss";
.goods_image {
width: 70vw;
}
.popup_box {
padding-top: 30rpx;
background-color: transparent;
.popup_content {
padding-bottom: 140rpx;
}
/deep/.list_item {
// border-bottom: none;
border: none !important;
box-shadow: none !important;
}
.product_image {
width: 100vw;
max-height: 90vh;
}
}
/deep/.u-popup__content {
background-color: transparent !important;
}
/deep/.u-popup__content__close {
color: #fff !important;
}
.title_box {
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 0;
.title_price {
color: #ef1224;
font-size: 40rpx;
font-weight: 700;
}
}
.swiper-container {
display: flex;
align-items: center;
}
.swiper-item {
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-left: auto;
margin-right: auto;
height: 858upx;
width: 530upx;
line-height: 300upx;
text-align: center;
broder-radius: 6upx;
margin-bottom: 50upx;
}
.swiper-tall {
display: flex;
align-items: center;
}
.swiper-title {
width: 750upx;
text-align: center;
}
</style>

View File

@@ -21,9 +21,9 @@
<p>一款线上电子书APP包含医学类国学类文学类中医古籍等各种类型3D仿真翻页护眼模式等阅读技术打造舒适阅读体验图文混排AI人声读书听书部分电子书也有对应的纸质书给予用户更多的阅读选择</p>
</view>
<view class="" style="text-align: center;">
<!-- https://main.nuttyreading.com/privacy.html -->
<!-- https://www.nuttyreading.com/privacy.html -->
<!-- <text @click="seeDetail('')" style="color: #007aff; font-size: 26rpx;">隐私政策</text> -->
<uni-link href="https://main.nuttyreading.com/privacy.html" text="隐私政策"></uni-link>
<uni-link href="https://www.nuttyreading.com/privacy.html" text="隐私政策"></uni-link>
<!-- <uni-link href="https://uniapp.dcloud.io/" text="https://uniapp.dcloud.io/"></uni-link> -->
</view>
<music-play :playData="playData"></music-play>

View File

@@ -5,18 +5,10 @@
<view class="" style="">
<view style="height: 60rpx"></view>
<view class="icon_hua">
<image
src="../../static/icon/home_icon_1.png"
mode="aspectFit"
class="icon_hua_1"
></image>
<image src="../../static/icon/home_icon_1.png" mode="aspectFit" class="icon_hua_1"></image>
</view>
<view class="hehan">
<image
src="../../static/icon/hehan.png"
mode="aspectFit"
class="icon_hua_1"
></image>
<image src="../../static/icon/hehan.png" mode="aspectFit" class="icon_hua_1"></image>
</view>
<view class="fiveIcon flexbox" style="justify-content: space-around">
@@ -60,28 +52,18 @@
<!-- <text> </text> -->
</view>
<view
class="hn_cl_tit dianzishu"
@click="onPageJump('../listen/home')"
v-if="iosHidden"
>
<view class="hn_cl_tit dianzishu" @click="onPageJump('../listen/home')" v-if="iosHidden">
<image src="../../static/icon/home2-1.png" mode="aspectFit"></image>
<!-- <text> </text> -->
</view>
<!-- <view class="hn_cl_tit" @click="onPageJump('../bookShop/bookShopIndex')"> -->
<view
class="hn_cl_tit shuping"
@click="onPageJump('../comments/commentsList')"
>
<view class="hn_cl_tit shuping" @click="onPageJump('../comments/commentsList')">
<image src="../../static/icon/home3-1.png" mode="aspectFit"></image>
<!-- <text> </text> -->
</view>
<view
class="hn_cl_tit chaoshi"
@click="onPageJump('../talkBook/talkBook')"
>
<view class="hn_cl_tit chaoshi" @click="onPageJump('../talkBook/talkBook')">
<image src="../../static/icon/home4-1.png" mode="aspectFit"></image>
<!-- <text> </text> -->
</view>
@@ -166,20 +148,9 @@
<u-icon name="volume-fill" color="#ff5500" size="26"></u-icon>
</view>
<view class="newscoll">
<swiper
class="swiper"
interval="5000"
circular
autoplay
vertical
indicator-dots="false"
>
<swiper-item
class="item"
v-for="(item, index) in newsList"
:key="index"
@click="newsClick(item)"
>
<swiper class="swiper" interval="5000" circular autoplay vertical indicator-dots="false">
<swiper-item class="item" v-for="(item, index) in newsList" :key="index"
@click="newsClick(item)">
<view class="swiper-item uni-bg-red">{{ item.title }}</view>
</swiper-item>
</swiper>
@@ -189,39 +160,17 @@
<!-- 营销标签 -->
<scroll-view class="yxTagBox" scroll-x="true">
<view class="ProTabs flexbox">
<text
v-for="(item, index) in yingxiaoTags"
:key="item.id"
:class="[yxCurIndex == index ? 'cur' : '']"
@click="yxTabsChange(item, index)"
>{{ item.title }}</text
>
<text v-for="(item, index) in yingxiaoTags" :key="item.id" :class="[yxCurIndex == index ? 'cur' : '']"
@click="yxTabsChange(item, index)">{{ item.title }}</text>
</view>
</scroll-view>
<view class="newBook">
<scroll-view
class="scroll-view_H"
scroll-x="true"
scroll-left="10"
style="margin-top: 0 !important"
>
<view
:class="['item']"
v-for="(item, index) in YXBookList"
:key="index"
>
<scroll-view class="scroll-view_H" scroll-x="true" scroll-left="10" style="margin-top: 0 !important">
<view :class="['item']" v-for="(item, index) in YXBookList" :key="index">
<view class="videoBox" @click="goDetail(item.product_id)">
<image
v-if="item.product_images != ''"
:src="item.product_images"
mode="scaleToFill"
></image>
<image
v-else
src="../../static/icon/wufeng.jpg"
mode="scaleToFill"
></image>
<image v-if="item.product_images != ''" :src="item.product_images" mode="scaleToFill"></image>
<image v-else src="../../static/icon/wufeng.jpg" mode="scaleToFill"></image>
</view>
<text class="bookName">{{ item.product_name }}</text>
</view>
@@ -299,26 +248,14 @@
<scroll-view class="ProTabsBox">
<view class="New_ProTabs flexbox">
<text
v-for="(item, index) in catTagList"
:key="item.splId"
:class="[tabsid == item.id ? 'cur' : '']"
@click="tabsChange(item, index)"
>{{ item.title }}</text
>
<text v-for="(item, index) in catTagList" :key="item.splId" :class="[tabsid == item.id ? 'cur' : '']"
@click="tabsChange(item, index)">{{ item.title }}</text>
</view>
</scroll-view>
<view
class="children_cate_box"
v-if="childrenCatList && childrenCatList.length > 0"
>
<view class="children_cate_box" v-if="childrenCatList && childrenCatList.length > 0">
<view class="children_cate flexbox">
<view
@click="childrenChange(item, index)"
:class="['item', curChildrenId == item.id ? 'cur' : '']"
v-for="(item, index) in childrenCatList"
:key="item.id"
>
<view @click="childrenChange(item, index)" :class="['item', curChildrenId == item.id ? 'cur' : '']"
v-for="(item, index) in childrenCatList" :key="item.id">
<text>{{ item.title }}</text>
</view>
</view>
@@ -329,41 +266,22 @@
<view class="">
<view v-if="tjProList.length > 0">
<view class="flexbox" style="flex-wrap: wrap">
<view
class="goodsItem"
v-for="(item, index) in tjProList"
:key="index"
@click="goDetail(item.product_id)"
>
<image
:src="item.product_images"
mode=""
class="goodsImg"
></image>
<view class="goodsItem" v-for="(item, index) in tjProList" :key="index"
@click="goDetail(item.product_id)">
<image :src="item.product_images" mode="" class="goodsImg"></image>
<view class="goodsContent">
<view class="goodsName">
{{ item.product_name }}
</view>
<view class="goodsPrice">
<view
style="display: flex; align-items: center"
v-if="item.activity_price && item.activity_price > 0"
>
<span
class="price"
>{{ item.activity_price }}</span
>
<span
v-if="item.activity_price != item.price"
class="Salesnum"
style="
<view style="display: flex; align-items: center"
v-if="item.activity_price && item.activity_price > 0">
<span class="price">{{ item.activity_price }}</span>
<span v-if="item.activity_price != item.price" class="Salesnum" style="
margin-left: 10rpx;
margin-top: 2rpx;
text-decoration: line-through;
"
>{{ item.price }}</span
>
">{{ item.price }}</span>
</view>
<span class="price" v-else>{{ item.price }}</span>
@@ -375,14 +293,12 @@
<view class="">
<view v-if="status == 0" style="text-align: center">
<u-loading-icon style="display: inline-block"></u-loading-icon>
<font
style="
<font style="
vertical-align: super;
margin-left: 10px;
font-size: 26rpx;
color: #909399;
"
>努力加载中
">努力加载中
</font>
</view>
<view v-if="status == 1">
@@ -395,20 +311,12 @@
</view>
<view>
<u-back-top
:scroll-top="scrollTop"
bottom="60"
:customStyle="bgiStyle"
:iconStyle="iconStyle"
></u-back-top>
<u-back-top :scroll-top="scrollTop" bottom="60" :customStyle="bgiStyle" :iconStyle="iconStyle"></u-back-top>
</view>
<view class="appJump">
<view class="everhealth item flexbox" @click="appjumpfun('everhealth')">
<view class="img">
<image
src="@/static/icon/ic_login_health.png"
mode="widthFix"
></image>
<image src="@/static/icon/ic_login_health.png" mode="widthFix"></image>
</view>
<view class="text">
<text>一路健康</text>
@@ -422,26 +330,39 @@
<text>众妙之门</text>
</view>
</view>
<view class="zmzm item flexbox" @click="appjumpfun('wumen')">
<view class="img">
<image src="@/static/wumen40.png" mode="widthFix"></image>
</view>
<view class="text">
<text>吴门医述</text>
</view>
</view>
</view>
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<z-navigation></z-navigation>
<music-play :playList="myList"></music-play>
<common-advertisement ref="commonAdvertisement" :list="advertisementList"></common-advertisement>
</view>
</template>
<script>
import musicPlay from "@/components/music.vue";
import repciptData from "@/static/json/repcipt.json";
import $http from "@/config/requestConfig.js";
// #ifdef APP-PLUS
import updata from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
// #endif
import { mapState, mapMutations } from "vuex";
export default {
import musicPlay from "@/components/music.vue";
import repciptData from "@/static/json/repcipt.json";
import $http from "@/config/requestConfig.js";
// #ifdef APP-PLUS
import updata from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
// #endif
import {
mapState,
mapMutations
} from "vuex";
export default {
data() {
return {
myList: [],
advertisementList: [],
showEbook: false, // 显示电子书相关
transaction: {
// 成功回调
@@ -484,8 +405,7 @@ export default {
},
tagList: [], // 推荐标签列表
childrenCatList: [], // 二级分类
wztaglist: [
{
wztaglist: [{
splId: "-1",
labelName: "全部",
},
@@ -498,8 +418,7 @@ export default {
labelName: "哲学",
},
],
yxtaglist: [
{
yxtaglist: [{
splId: "0",
labelName: "全部",
},
@@ -541,6 +460,12 @@ export default {
// 隐藏原生的tabbar
uni.hideTabBar();
// this.requestIapOrder()
this.$nextTick(()=>{
this.getAdvertisement()
})
},
onHide() {
this.page = 1;
@@ -619,6 +544,29 @@ export default {
//方法
methods: {
...mapMutations(["setUserInfo"]),
async getAdvertisement() {
await $http
.request({
url: "common/mainAd/getMainAd",
method: "POST",
data: {
type: 0,
},
header: {
//默认 无 说明:请求头
"Content-Type": "application/json",
},
})
.then(async (res) => {
console.log("res at line 61511111111111111:", res);
if (res.code == 0 && res.list && res.list.length > 0) {
this.advertisementList = res.list;
this.$refs.commonAdvertisement.open();
}
});
},
requestAll() {
this.getUserInfo();
this.tjProList = [];
@@ -855,11 +803,10 @@ export default {
let that = this;
console.log("检测未完成订单");
console.log(this.iapChannel, "this.iapChannel");
this.iapChannel.restoreComplateRequest(
{
this.iapChannel.restoreComplateRequest({
manualFinishTransaction: true,
},
function (results) {
function(results) {
if (!that.checking) {
that.checking = true;
// console.log(that.checking)
@@ -1031,9 +978,8 @@ export default {
content: "购买 中医时间医学·火病原理 后方可使用此功能",
confirmText: "好的",
showCancel: false,
success: function (res) {
if (res.confirm) {
}
success: function(res) {
if (res.confirm) {}
},
});
return;
@@ -1099,6 +1045,10 @@ export default {
bagName = "cn.com.everhealth";
schemes = "everhealth";
}
if (name == "wumen") {
bagName = "com.cn.medicine";
schemes = "medicine";
}
// if(name == 'everhealth'){
if (plus.os.name == "Android") {
//安卓
@@ -1123,7 +1073,7 @@ export default {
//未安装app
plus.runtime.openURL(
`https://a.app.qq.com/o/simple.jsp?pkgname=${bagName}`,
function (res) {
function(res) {
//进入后台小哥哥给我的应用宝下载链接,让你们后台给你
//这链接会判断你手机是ios还是AndroidAndroid进入应用宝下载app
//跟下面的是一个链接
@@ -1135,14 +1085,13 @@ export default {
//苹果
//因为ios查不到B款app在ios系统手机里面其实下载了也是检测不到所以就不检测了
//直接打开B款appB款app没有的话会进入回调报错我们在回调去打开下载链接
plus.runtime.launchApplication(
{
plus.runtime.launchApplication({
action: "${schemes}://",
},
function (e) {
function(e) {
plus.runtime.openURL(
`https://a.app.qq.com/o/simple.jsp?pkgname=${bagName}`,
function (res) {
function(res) {
//进入后台小哥哥给我的appStore下载app链接让你们后台给你
//这链接会判断你手机是ios还是Androidios进入应用宝下载app
//跟上面的是一个链接
@@ -1155,15 +1104,17 @@ export default {
}
},
},
};
};
</script>
<style lang="scss" scoped>
@import "@/style/mixin.scss";
.appJump {
@import "@/style/mixin.scss";
.appJump {
position: fixed;
right: 0;
top: 10%;
z-index: 1;
.item {
background: rgba(255, 255, 255, 0.6);
margin-bottom: 40rpx;
@@ -1172,13 +1123,16 @@ export default {
padding-right: 10rpx;
overflow: hidden;
border-radius: 50rpx 0 0 50rpx;
text {
font-size: 20rpx;
}
.img {
// width: 60rpx; height: 60rpx;
padding: 6rpx;
overflow: hidden;
image {
width: 36rpx;
height: 36rpx;
@@ -1186,8 +1140,9 @@ export default {
}
}
}
}
.newsBox {
}
.newsBox {
justify-content: space-between;
background-color: #fff;
margin-top: 10px;
@@ -1196,11 +1151,13 @@ export default {
padding: 10rpx;
overflow: hidden;
margin-bottom: 10px;
.content {
image {
max-width: 100% !important;
}
}
.icon {
width: 44rpx;
}
@@ -1219,16 +1176,15 @@ export default {
}
}
}
}
}
.yxTagBox {
}
.yxTagBox {}
.children_cate_box {
.children_cate_box {
padding: 0 10px;
}
}
.children_cate {
.children_cate {
border-radius: 5px;
justify-content: space-evenly;
@@ -1260,9 +1216,9 @@ export default {
font-weight: bold;
border-radius: 5rpx;
}
}
}
.fiveIcon {
.fiveIcon {
justify-content: space-between;
text-align: center;
@@ -1276,24 +1232,24 @@ export default {
height: 56rpx;
margin: 0 auto;
}
}
}
.hehan {
.hehan {
width: 80%;
margin: 10rpx auto;
}
}
.zhekou {
.zhekou {
.goodsName {
margin-bottom: 20rpx;
}
}
}
.activityPrice {
.activityPrice {
font-size: 60rpx;
}
}
.priceAndnum {
.priceAndnum {
font-size: 24rpx !important;
.price {
@@ -1302,9 +1258,9 @@ export default {
font-weight: normal !important;
display: block;
}
}
}
.ProTabs {
.ProTabs {
// margin: 20rpx 0;
padding: 0 10px;
align-items: center;
@@ -1332,14 +1288,14 @@ export default {
text:last-child {
margin-right: 0;
}
}
}
.ProTabsBox {
.ProTabsBox {
margin-top: 10px;
padding-bottom: 3px;
}
}
.New_ProTabs {
.New_ProTabs {
justify-content: space-between;
background-color: #fff;
padding-left: 10px;
@@ -1370,9 +1326,9 @@ export default {
background-color: #55aa7f;
color: #fff;
}
}
}
.wzProTabs {
.wzProTabs {
display: flex;
justify-content: center;
padding: 0 20rpx;
@@ -1392,17 +1348,17 @@ export default {
background-color: #55aa7f;
color: #fff;
}
}
}
// .newBook{margin-top: 10rpx;}
.scroll-view_H {
// .newBook{margin-top: 10rpx;}
.scroll-view_H {
background-color: #fff;
white-space: nowrap;
padding: 10px;
margin-top: 12rpx;
}
}
.scroll-view_H {
.scroll-view_H {
.item {
padding: 10rpx;
overflow: hidden;
@@ -1433,13 +1389,13 @@ export default {
}
// .item.active{margin-right: 20rpx; border: 1px solid #55aa00; border-radius: 10rpx;}
}
}
.flexbox {
.flexbox {
display: flex;
}
}
.head_line {
.head_line {
padding-top: 8rpx;
margin: 12rpx 0 0 0;
@@ -1464,9 +1420,9 @@ export default {
font-size: 24rpx;
margin: 5rpx 35rpx 0 0;
}
}
}
.home_bg {
.home_bg {
background-image: url("@/static/icon/home_bg.jpg");
background-position: center center;
background-repeat: no-repeat;
@@ -1499,9 +1455,9 @@ export default {
margin: 0 auto;
}
}
}
}
.search_box {
.search_box {
margin: 20rpx auto 10rpx auto;
align-items: center;
width: calc(100% - 40rpx);
@@ -1547,9 +1503,9 @@ export default {
border-top-right-radius: 20upx;
border-bottom-right-radius: 20upx;
}
}
}
.home_nar {
.home_nar {
background-color: #fff;
padding: 26rpx 10rpx;
justify-content: space-between;
@@ -1590,13 +1546,13 @@ export default {
font-weight: blod;
}
}
}
}
.home_lunbo {
.home_lunbo {
margin: 40rpx 30rpx 0 30rpx;
}
}
.home_shujia {
.home_shujia {
margin: 40rpx 20rpx 0 20rpx;
display: flex;
color: #333;
@@ -1612,9 +1568,9 @@ export default {
margin: 0 auto;
}
}
}
}
.home_xinshu {
.home_xinshu {
margin: 35rpx 30rpx;
padding: 36rpx 16rpx 0 16rpx;
background-color: #fff;
@@ -1659,9 +1615,9 @@ export default {
font-size: 16rpx;
}
}
}
}
.home_limit {
.home_limit {
margin: 35rpx 0;
padding: 36rpx 0 20rpx 0;
background-color: #fff;
@@ -1722,9 +1678,9 @@ export default {
.lt_list:nth-last-child(1) {
padding-right: 30rpx;
}
}
}
.home_jingxu {
.home_jingxu {
margin: 60rpx 30rpx 0 30rpx;
.hj_hot {
@@ -1774,9 +1730,9 @@ export default {
font-size: 16rpx;
}
}
}
}
.limited {
.limited {
width: 100%;
height: auto;
padding: 20rpx 10rpx 10rpx 10rpx;
@@ -1835,9 +1791,9 @@ export default {
color: #c1c1c1;
}
}
}
}
.goods {
.goods {
width: 100%;
margin: 0 0 50rpx 0;
background-color: #fff;
@@ -1889,5 +1845,5 @@ export default {
.goodsItem:nth-child(2n) {
margin-left: 0;
}
}
}
</style>

File diff suppressed because it is too large Load Diff

BIN
static/icon/currency.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
static/wumen40.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__9788EB5","name":"疯子读书","version":{"name":"1.2.43","code":1243},"description":"疯子读书","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Payment":{},"OAuth":{},"Share":{},"Camera":{},"VideoPlayer":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":false,"waiting":true},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#FFFFFF"},"compatible":{"ignoreVersion":true},"privacy":{"prompt":"template","template":{"title":"用户协议和隐私政策","message":"请你务必审慎阅读、充分理解“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href='https://main.nuttyreading.com/agreement.html'>《用户协议》</a>和<a href='https://main.nuttyreading.com/privacy.html'>《隐私协议》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。","buttonAccept":"同意","buttonRefuse":"暂不同意"}},"compilerVersion":3,"nativePlugins":{},"uniStatistics":{"version":"2","enable":true,"uniCloud":{"provider":"aliyun","spaceId":"mp-3614b80b-2d75-4462-a481-4998f8187274","clientSecret":"ogncD4XunyyFxHlbDFZ/Ww==","endpoint":"https://api.next.bspapp.com"}},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.06","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"fast"},"tabBar":{"color":"#444444","selectedColor":"#079307","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","list":[{"pagePath":"pages/peanut/home","iconPath":"static/tab/icon1_n.png","selectedIconPath":"static/tab/icon1_y.png","text":"首页"},{"pagePath":"pages/medicaldes/medicaldes","iconPath":"static/icon/five5_n.png","selectedIconPath":"static/icon/five5.png","text":"吴门医述"},{"pagePath":"pages/library/library","iconPath":"static/tab/icon3_n.png","selectedIconPath":"static/tab/icon3_y.png","text":"我的图书"},{"pagePath":"pages/peanut/mine","iconPath":"static/tab/icon4_n.png","selectedIconPath":"static/tab/icon4_y.png","text":"我"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__9788EB5","name":"疯子读书","version":{"name":"1.2.43","code":1243},"description":"疯子读书","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Payment":{},"OAuth":{},"Share":{},"Camera":{},"VideoPlayer":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":false,"waiting":true},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#FFFFFF"},"compatible":{"ignoreVersion":true},"privacy":{"prompt":"template","template":{"title":"用户协议和隐私政策","message":"请你务必审慎阅读、充分理解“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href='https://main.nuttyreading.com/agreement.html'>《用户协议》</a>和<a href='https://www.nuttyreading.com/privacy.html'>《隐私协议》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。","buttonAccept":"同意","buttonRefuse":"暂不同意"}},"compilerVersion":3,"nativePlugins":{},"uniStatistics":{"version":"2","enable":true,"uniCloud":{"provider":"aliyun","spaceId":"mp-3614b80b-2d75-4462-a481-4998f8187274","clientSecret":"ogncD4XunyyFxHlbDFZ/Ww==","endpoint":"https://api.next.bspapp.com"}},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.06","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"fast"},"tabBar":{"color":"#444444","selectedColor":"#079307","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","list":[{"pagePath":"pages/peanut/home","iconPath":"static/tab/icon1_n.png","selectedIconPath":"static/tab/icon1_y.png","text":"首页"},{"pagePath":"pages/medicaldes/medicaldes","iconPath":"static/icon/five5_n.png","selectedIconPath":"static/icon/five5.png","text":"吴门医述"},{"pagePath":"pages/library/library","iconPath":"static/tab/icon3_n.png","selectedIconPath":"static/tab/icon3_y.png","text":"我的图书"},{"pagePath":"pages/peanut/mine","iconPath":"static/tab/icon4_n.png","selectedIconPath":"static/tab/icon4_y.png","text":"我"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}