Commit 7ace1b3d authored by mengcuiguang's avatar mengcuiguang

保留审核页面

parent d93855f0
...@@ -44,43 +44,6 @@ ...@@ -44,43 +44,6 @@
], ],
// 分包配置 // 分包配置
"subPackages": [{ "subPackages": [{
"root": "pagesA",
"pages": [{
"path": "vipPay/vipPay",
"style": {
"navigationBarTitleText": "会员中心",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
}, {
"path": "cdkey/cdkey",
"style": {
"navigationBarTitleText": "兑换会员",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
},
{
"path": "unsign/unsign",
"style": {
"navigationBarTitleText": "管理自动续费",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
},{
"path": "vipAppPay/vipAppPay",
"style": {
"navigationBarTitleText": "会员中心",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
}
]
}, {
"root": "page-subs/sub_A", "root": "page-subs/sub_A",
"pages": [{ "pages": [{
"path": "book-search/book-search", "path": "book-search/book-search",
...@@ -123,48 +86,13 @@ ...@@ -123,48 +86,13 @@
} }
}] }]
}, {
"root": "pagesD",
"pages": [{
"path": "payRecord/payRecord",
"style": {
"navigationBarTitleText": "我的订单",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
}, {
"path": "dotRecord/dotRecord",
"style": {
"navigationBarTitleText": "书豆记录",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
}, {
"path": "useDotRecord/useDotRecord",
"style": {
"navigationBarTitleText": "消费记录",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
}, {
"path": "readerRecord/readerRecord",
"style": {
"navigationBarTitleText": "阅读记录",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
}]
}], }],
// 分包预载配置 // 分包预载配置
"preloadRule": { "preloadRule": {
// 当我们进入了pages/home页面以后就会预下载pagesA分包 // 当我们进入了pages/home页面以后就会预下载pagesA分包
"pages/home": { "pages/home": {
"network": "all", //在指定网络下预下载,可选值为:all(不限网络)、wifi(仅wifi下预下载) "network": "all", //在指定网络下预下载,可选值为:all(不限网络)、wifi(仅wifi下预下载)
"packages": ["pagesA", "page-subs/sub_A", "pagesD"] //进入页面后预下载分包 "packages": ["page-subs/sub_A"] //进入页面后预下载分包
} }
}, },
"globalStyle": { "globalStyle": {
......
<template> <template>
<view v-if="localActiviteFlag==1" class="body"> <view class="body">
<view style="height: 92%;">
<bookshelf v-show="currentPage==0" ref="shelf" v-on:showEditBarH="showEditBarH" />
<bookcity v-show="currentPage==1" ref="city" />
<warehouse v-show="currentPage==2" ref="recommend" />
<userPage v-show="currentPage==3" ref="user" />
</view>
<view class="tabs-bar" :style="'z-index: 99;height: 8%;padding-bottom:' + bottomSafeHeight + 'px'">
<view :class="currentPage==0?'tab active': 'tab'" @click="tabChange(0)">
<view class="tab-home">
<image v-if="currentPage==0" class="tabs-image" src="/static/tab/bookshelf_s.png" mode="heightFix">
</image>
<image v-else class="tabs-image" src="/static/tab/bookshelf.png" mode="heightFix"></image>
</view>
书架
</view>
<view :class="currentPage == 1?'tab active': 'tab'" @click="tabChange(1)">
<view class="tab-home">
<image v-if="currentPage==1" class="tabs-image" src="/static/tab/bookcity_s.png" mode="heightFix">
</image>
<image v-else class="tabs-image" src="/static/tab/bookcity.png" mode="heightFix"></image>
</view>
书城
</view>
<view :class="currentPage == 2?'tab active': 'tab'" @click="tabChange(2)">
<view class="tab-home">
<image v-if="currentPage==2" class="tabs-image" src="/static/tab/bookstore_s.png" mode="heightFix">
</image>
<image v-else class="tabs-image" src="/static/tab/bookstore.png" mode="heightFix"></image>
</view>
书库
</view>
<view :class="currentPage == 3?'tab active': 'tab'" @click="tabChange(3)">
<view class="tab-home">
<image v-if="currentPage==3" class="tabs-image" src="/static/tab/my_s.png" mode="heightFix">
</image>
<image v-else class="tabs-image" src="/static/tab/my.png" mode="heightFix"></image>
</view>
我的
</view>
</view>
<view v-if="showEditBar" class="editBar" :style="'padding-bottom:' + bottomSafeHeight + 'px;'">
<view class="editItem" @click="!isFullChoice?fullChoice():noChoice()">
{{!isFullChoice?'全选':'全不选'}}
</view>
<view class="editItem" @click="deleteCollect">
删除
</view>
</view>
</view>
<view v-else class="body">
<view <view
:style="'display: flex;flex-direction: row;align-items: center;margin: 20rpx;padding-left: 10rpx;margin-top:'+10+'px;'"> :style="'display: flex;flex-direction: row;align-items: center;margin: 20rpx;padding-left: 10rpx;margin-top:'+10+'px;'">
<image class="avatar" src="@/static/images/logo.png"></image> <image class="avatar" src="@/static/images/logo.png"></image>
...@@ -76,19 +24,14 @@ ...@@ -76,19 +24,14 @@
import common from '@/mixins/common'; import common from '@/mixins/common';
const app = getApp(); const app = getApp();
import bookshelf from "@/components/bookshelf/bookshelf.vue";
import bookcity from "@/components/bookcity/bookcity.vue";
import warehouse from "@/components/warehouse/warehouse.vue"; import warehouse from "@/components/warehouse/warehouse.vue";
import userPage from "@/components/home/my.vue";
export default { export default {
name: 'home', name: 'home',
mixins: [common], mixins: [common],
components: { components: {
bookshelf, warehouse
bookcity,
warehouse,
userPage
}, },
data() { data() {
return { return {
...@@ -108,72 +51,20 @@ ...@@ -108,72 +51,20 @@
} }
}, },
onShow() { onShow() {
try {
if (this.currentPage == 0) {
this.$refs.shelf.show();
} else if (this.currentPage == 3) {
this.$refs.user.show();
}
} catch (e) {
}
let that = this
uni.$on('refreshPreviousPage', (data) => {
if (data.vipFlag == '1') {
// 开通vip刷新状态
if (that.currentPage == 3) {
that.$refs.user.show();
}
}
});
}, },
mounted() { mounted() {
// 渲染完成 初始化首页数据 // 渲染完成 初始化首页数据
this.loadComponentData(); this.loadComponentData();
let that = this let that = this
if (this.localActiviteFlag == 1) {
uni.$on('goWareHouse', function(data) {
that.tabChange(1)
})
}
}, },
methods: { methods: {
tabChange(index) {
if (this.currentPage == index) return
this.currentPage = index;
this.loadComponentData();
},
loadComponentData() { loadComponentData() {
if (this.localActiviteFlag == 1) {
if (this.currentPage == 0) {
this.$refs.shelf.show();
} else if (this.currentPage == 1) {
this.$refs.city.show();
} else if (this.currentPage == 2) {
this.$refs.recommend.show();
} else if (this.currentPage == 3) {
this.$refs.user.show();
}
} else {
this.$refs.recommend2.show(); this.$refs.recommend2.show();
}
},
showEditBarH(b) {
this.showEditBar = b
this.isFullChoice = false
},
fullChoice() {
this.isFullChoice = !this.isFullChoice
this.$refs.shelf.fullChoice()
},
noChoice() {
this.isFullChoice = !this.isFullChoice
this.$refs.shelf.noChoice()
},
deleteCollect() {
this.$refs.shelf.deleteCollect()
} }
} }
} }
......
<template> <template>
<view v-if="sourceType!='android'" class="body"> <view class="body">
<image style="width: 170rpx;height: 170rpx;margin-top: 30%;" src="../static/images/logo.png" mode="widthFix" /> <image style="width: 170rpx;height: 170rpx;margin-top: 30%;" src="../static/images/logo.png" mode="widthFix" />
<view style="color: black;margin-top: 30rpx;font-size: 40rpx;font-size: 50rpx;">{{appName}}</view> <view style="color: black;margin-top: 30rpx;font-size: 40rpx;font-size: 50rpx;">{{appName}}</view>
<view style="color: #FECF02;margin-top: 10rpx;font-size: 40rpx;font-size: 40rpx;">欢迎使用</view> <view style="color: #FECF02;margin-top: 10rpx;font-size: 40rpx;font-size: 40rpx;">欢迎使用</view>
...@@ -15,25 +15,6 @@ ...@@ -15,25 +15,6 @@
</view> </view>
</uni-popup> </uni-popup>
</view> </view>
<view v-else class="show-mask flex-v" @click="getVipParams">
<image style="width: 100%;margin-top: 200rpx;margin-bottom: 150rpx;z-index: 2;" mode="widthFix"
src="https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_redpkg.png">
</image>
<image v-if="!isVip" class="heart"
src="https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_vedio_next.png" mode="widthFix">
</image>
<button v-else open-type="launchApp" app-parameter="wechat" @click.stop="" class="heart-btn">
<image src="https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_vedio_toapp.png" mode="widthFix">
</image>
</button>
<image class="mask-bg" mode="scaleToFill"
src="https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_book_main.png">
</image>
<view class="mask-bottom-bg"> </view>
</view>
</template> </template>
<script> <script>
...@@ -71,23 +52,8 @@ ...@@ -71,23 +52,8 @@
}, },
onShow(options) { onShow(options) {
this.ttLoging() this.ttLoging()
this.isVipStatus()
}, },
methods: { methods: {
isVipStatus() {
if (this.sourceType == 'android' && this.localToken) {
let that = this;
this.post({
url: '/vip/getVipProducts/cyc/forVApp',
showLoading: false,
success: ({
data
}) => {
that.isVip = data.vip
}
});
}
},
ttLoging() { ttLoging() {
var that = this; var that = this;
var obj = wx.getLaunchOptionsSync() var obj = wx.getLaunchOptionsSync()
...@@ -135,98 +101,15 @@ ...@@ -135,98 +101,15 @@
// 'A5CFAE67AF32E71D10CA6127546E82C20A8DE7C0EAAA5697BEEC2AC2E333F9945F433703067DF5142735505C42F58997' // 'A5CFAE67AF32E71D10CA6127546E82C20A8DE7C0EAAA5697BEEC2AC2E333F9945F433703067DF5142735505C42F58997'
// ) // )
// that.handlePay() setTimeout(() => {
redirectTo('home?activiteFlag=' + data
if (data.activiteFlag == 101) { .activiteFlag + "&idcode=" + data.idcode);
that.handlePay() }, 1000);
} else {
setTimeout(() => {
redirectTo('home?activiteFlag=' + data
.activiteFlag + "&idcode=" + data.idcode);
}, 1000);
}
} }
}); });
}, },
fail: function(err) {} fail: function(err) {}
}); });
},
handlePay() {
let that = this;
this.post({
url: '/vip/getVipProducts/cyc/forVApp',
showLoading: false,
success: ({
data
}) => {
that.vipList = data.list;
}
});
},
getVipParams() {
if (this.isVip) {
return
}
let that = this;
if (that.vipList != null && that.vipList.length > 0) {
let vipBean = that.vipList[0];
that.post({
url: '/vip/getVipPayParams/wechatForVApp',
data: {
pid: vipBean.pid,
payChannel: 'WEIXIN'
},
showLoading: true,
success: ({
data
}) => {
if (vipBean.firstPayPrice == 0) {
//签约
that.wxSign(data, vipBean.largeType);
} else {
//普通支付
that.wxPay(data, vipBean.largeType);
}
}
});
} else {
message.notify('网络加载中,请稍后')
}
},
wxSign(wxData, largeType) {
let that = this;
// 发起微信签约
wx.navigateToMiniProgram({
appId: "wxbd687630cd02ce1d",
path: 'pages/index/index',
extraData: wxData.params,
success(res) {
// setTimeout(() => {
// that.isVipStatus()
// }, 1000);
},
fail(res) {
// 未成功跳转到签约小程序
// console.log("wxSign fail=", res);
}
})
},
wxPay(wxData) {
let wxParams = wxData.params;
let that = this;
// 发起微信支付
wx.requestPayment({
timeStamp: wxParams.timeStamp,
nonceStr: wxParams.nonceStr,
package: wxParams.packageStr,
signType: wxParams.signType,
paySign: wxParams.paySign,
success(res) {},
fail(res) {
// message.notify('取消支付')
}
})
} }
} }
}; };
......
<template>
<view class="body">
<view class="search-head">
<view class="search-bar">
<input class="inputkeyword" type="text" placeholder="请输入兑换码" @input="showChangePrompt"
:value="keyword" />
<image v-if="keyword!=''" @click="clearWord" style="width: 36rpx; height: 36rpx"
src="@/static/video/close.png"></image>
</view>
<text class="searchbutton" @click="addByCDK">去兑换</text>
</view>
</view>
</template>
<script>
import common from '@/mixins/common';
import {
navigateBack,
message,
alert,
} from '@/utils/fun.js';
const app = getApp();
export default {
name: 'cdkey',
mixins: [common],
data() {
return {
keyword: '',
};
},
methods: {
showChangePrompt(e) {
this.keyword = e.detail.value
},
addByCDK() {
if (this.keyword == '') {
message.notify('请输入兑换码')
return
}
this.post({
url: '/vip/addByCDK',
showLoading: false,
data: {
cdk: this.keyword
},
success: ({
data
}) => {
message.notify('恭喜您,成功兑换会员!')
setTimeout(() => {
navigateBack()
}, 1000)
}
});
}
}
};
</script>
<style lang="scss">
@import '@/scss/uni.scss';
.body {
background-color: whitesmoke;
}
.search-head {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 8%;
}
.search-bar {
border-radius: 60rpx;
margin: 10rpx 15rpx;
padding: 15rpx 30rpx;
width: 80%;
background-color: white;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between
}
.inputkeyword {
flex: 1;
margin-left: 30rpx;
}
.searchbutton {
text-align: center;
color: #000000;
font-size: 30rpx;
width: 20%;
margin-right: 10rpx;
}
</style>
\ No newline at end of file
<template>
<view class="body">
<text style="margin-left: 40rpx;margin-top: 50rpx;font-size: 36rpx;">续费管理</text>
<view class="unsign-head">
<view style="position: absolute;z-index: 10;width: 100%;padding-top: 30rpx;">
<text style="margin-left: 50rpx;font-size: 30rpx;">{{ agreementData.topText }}</text>
<view class="section">
<view>下次扣款日期</view>
<view>{{ agreementData.nextDay }}</view>
</view>
<view class="section">
<view>下次扣款金额</view>
<view>{{ agreementData.balance }}</view>
</view>
<view class="section">
<view>支付方式</view>
<view>微信</view>
</view>
<text class="unsignbutton" @click="unsign">取消自动续费</text>
</view>
<image :src="bgImg" mode="widthFix" style="position: absolute;width: 100%;"></image>
</view>
</view>
</template>
<script>
import common from '@/mixins/common';
import {
navigateBack,
message,
alert,
} from '@/utils/fun.js';
const app = getApp();
export default {
name: 'unsign',
mixins: [common],
data() {
return {
agreementData: {},
bgImg: 'https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_sign.png'
};
},
onLoad(options) {
this.agreementData = JSON.parse(decodeURIComponent(options.params));
},
methods: {
unsign() {
this.post({
url: '/vip/unSign',
showLoading: false,
success: ({
data
}) => {
message.notify('已取消自动签约')
setTimeout(() => {
navigateBack()
}, 1000)
}
});
}
}
};
</script>
<style lang="scss">
@import '@/scss/uni.scss';
.body {
background-color: whitesmoke;
color: #74380C;
}
.unsign-head {
margin-left: 3%;
margin-top: 5%;
width: 94%;
position: relative;
.section {
margin: 30rpx 50rpx;
display: flex;
justify-content: space-between;
}
.unsignbutton {
border: 1rpx solid #E6985D;
padding: 6rpx 20rpx;
border-radius: 3rpx;
text-align: center;
color: #763904;
font-size: 26rpx;
position: absolute;
right: 50rpx;
}
}
</style>
\ No newline at end of file
This diff is collapsed.
<template>
<view class="body">
<image style="width: 100%;" src="https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/bg_heli_vip.png"
mode="widthFix" />
<view class="section">
<view @click="handleUnsign" v-if="agreementDto"
style="margin-top: 12rpx;margin-left: 30rpx;color: black;font-size: 36rpx;font-weight: 700;">自动续费管理 >
</view>
<view class="pack-box">
<scroll-view scroll-x style="white-space: nowrap">
<view class="pack-item" v-for='(item, index) in vipList' :key='index'
@click="choosePack(item, index)">
<view class="pack-content" :class="[{active: index==selectedIndex}]">
<view class="label" v-if="item.topTitle">
{{ item.topTitle }}
</view>
<view class="name row" :class="[{active2: index==selectedIndex}]">
{{item.title}}
</view>
<view class="price row"
:class="[{active1: index==selectedIndex},{price2:item.firstPayPrice<=0}]">
<view style="font-size: 50rpx;">{{item.firstPayPrice<=0 ? '' : '¥'}}</view>
{{item.firstPayPrice<=0 ? '免费试用' : item.firstPayPrice}}
</view>
<view class="origin row" v-if='item.oldPrice'>
{{item.oldPrice}}
</view>
<view class="origin2 row" v-if='item.remarks'>
{{ getRemark1(item.remarks) + '\r\n' + getRemark2(item.remarks) }}
</view>
<view class="label2" v-if="index==selectedIndex&&item.firstPayPrice>0">
{{ '仅需'+amount(item.firstPayPrice / item.days)+'元/天' }}
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<view class="trialStyle">
<text v-if="hintText">
{{hintText}}
</text>
</view>
<view class="agreementWrp">
<checkbox-group @change="checkboxChange" style="width: 50rpx;margin-right: 10rpx;">
<checkbox :checked="checked" style="transform:scale(0.9)">
</checkbox>
</checkbox-group>
<text>您已阅读并同意
<text class="agreementText" @click="goAgreement(1)">《连续订阅服务协议》</text>
<text class="agreementText" @click="goAgreement(2)">《支付协议》</text>
<text class="agreementText" @click="goAgreement(3)">《隐私政策》</text>
</text>
</view>
<view class="section">
<button class="apply-button" @click="handlePay">立即试用</button>
</view>
</view>
</template>
<script>
import common from '@/mixins/common';
import {
message,
navigateBack,
navigateTo,
redirectTo
} from '@/utils/fun';
const app = getApp();
export default {
name: 'vipPay',
mixins: [common],
data() {
return {
vipList: [],
selectedIndex: 0,
os: 'android',
checked: false,
agreementDto: null,
hintText: ''
}
},
methods: {
loadData() {
if (wx.getSystemInfoSync().platform === 'ios') {
this.os = 'ios';
}
this.post({
url: '/vip/getVipProducts/cyc',
showLoading: false,
success: ({
data
}) => {
this.vipList = data.list
this.hintText = this.vipList[0].trailRemark;
}
});
this.post({
url: '/vip/getOrderList',
showLoading: false,
success: ({
data
}) => {
if (data.agreement == undefined) {
this.agreementDto = null;
} else {
this.agreementDto = data.agreement;
}
}
});
},
choosePack(item, index) {
this.selectedIndex = index;
this.hintText = this.vipList[this.selectedIndex].trailRemark;
},
handleUnsign() {
if (this.agreementDto) {
let params = JSON.stringify(this.agreementDto)
navigateTo(`/pagesA/unsign/unsign?params=` + params)
}
},
amount(value) {
return value.toFixed(2)
},
getRemark1(value) {
let data = value.split(',')
if (data.length > 0) {
return data[0]
}
return ''
},
getRemark2(value) {
let data = value.split(',')
if (data.length > 1) {
return data[1]
}
return ''
},
handlePay() {
if (!this.checked) {
message.notify("请阅读《支付协议》后勾选同意")
return
}
let that = this;
let vipBean = this.vipList[this.selectedIndex];
if (this.os == 'ios') {
message.notify('暂不支持ios系统~');
} else {
this.post({
url: '/vip/getVipPayParams/wechat',
data: {
pid: vipBean.pid,
payChannel: 'WEIXIN'
},
showLoading: true,
success: ({
data
}) => {
if (vipBean.firstPayPrice == 0) {
//签约
that.wxSign(data, vipBean.largeType);
} else {
//普通支付
that.wxPay(data, vipBean.largeType);
}
}
});
}
},
wxSign(wxData, largeType) {
let that = this;
// 发起微信签约
wx.navigateToMiniProgram({
appId: "wxbd687630cd02ce1d",
path: 'pages/index/index',
extraData: wxData.params,
success(res) {
uni.navigateBack()
},
fail(res) {
// 未成功跳转到签约小程序
console.log("wxSign fail=", res);
}
})
},
wxPay(wxData) {
let wxParams = wxData.params;
let that = this;
// 发起微信支付
wx.requestPayment({
timeStamp: wxParams.timeStamp,
nonceStr: wxParams.nonceStr,
package: wxParams.packageStr,
signType: wxParams.signType,
paySign: wxParams.paySign,
success(res) {
message.notify('支付成功')
uni.$emit('refreshPreviousPage', {
vipFlag: '1'
});
setTimeout(() => {
uni.navigateBack({
delta: 1,
});
}, 1000);
},
fail(res) {
message.notify('取消支付')
}
})
},
checkboxChange(e) {
if (e.detail.value.length > 0) {
this.checked = true
} else {
this.checked = false
}
},
goAgreement(type) {
if (type == 1) {
navigateTo(`/pages/brower/brower?url=https://api.mints-tech.cn/camera-api/agreements/xxx/gmxy.html`)
} else if (type == 2) {
navigateTo(`/pages/brower/brower?url=https://api.mints-tech.cn/camera-api/agreements/xxx/syzc.html`)
} else if (type == 3) {
navigateTo(`/pages/brower/brower?url=https://api.mints-tech.cn/camera-api/agreements/xxx/yhxy.html`)
}
}
}
}
</script>
<style lang="scss">
.body {
background-color: white;
display: flex;
flex-direction: column;
.section {
margin-top: 30rpx;
display: flex;
flex-direction: column;
.title {
font-size: 32rpx;
font-weight: 700;
color: white;
margin-bottom: 30rpx;
}
.pack-box {
margin-top: 25rpx;
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
overflow-x: scroll;
.pack-item {
margin-left: 30rpx;
width: calc(32% - 30rpx);
display: inline-block;
.active {
background-color: #FEEDD0;
border: 4rpx solid #FDEADC !important;
}
.pack-content {
width: 100%;
height: 320rpx;
display: flex;
flex-direction: column;
align-items: center;
background: white;
border: 2rpx solid #EAECEC;
border-radius: 20rpx;
position: relative;
padding-top: 60rpx;
.row {
display: flex;
align-items: center;
margin: 6rpx 15rpx;
marign-bottom: 0;
}
.row:last-child {
margin-bottom: 8rpx;
}
.name {
font-size: 30rpx;
font-weight: 700;
color: #000000;
}
.price {
font-size: 60rpx;
color: #000000;
font-weight: 700;
}
.price2 {
font-size: 40rpx;
}
.active1 {
color: #fd5350;
}
.active2 {
color: #6D301D;
}
.origin {
font-size: 26rpx;
margin: 0;
text-align: center;
color: #676666;
text-decoration: line-through;
}
.origin2 {
font-size: 26rpx;
text-align: center;
color: #676666;
word-wrap: break-word;
word-break: break-all;
white-space: pre-line;
}
.label {
margin-top: -4rpx;
margin-left: -4rpx;
border-radius: 20rpx 0 20rpx 0;
width: 80%;
background: linear-gradient(90deg, #FC4F3B, #FBCB7A);
color: white;
font-size: 24rpx;
height: 50rpx;
line-height: 50rpx;
margin-right: 20rpx;
text-align: center;
position: absolute;
top: 0;
left: 0;
}
.label2 {
margin-bottom: -4rpx;
margin-left: -4rpx;
margin-right: -4rpx;
width: 100%;
border-radius: 0 0 20rpx 20rpx;
background-color: #FC4F3B;
color: white;
font-size: 24rpx;
height: 50rpx;
line-height: 50rpx;
text-align: center;
position: absolute;
bottom: 0;
}
}
}
.pack-item:last-child {
margin-right: 30rpx;
}
}
.apply-button {
border-radius: 50rpx;
background: #e8c8ae;
color: #8d5a29;
width: 550rpx;
margin: 40rpx auto;
}
}
.agreementWrp {
display: flex;
align-items: center;
color: darkgray;
font-size: 26rpx;
margin-top: 30rpx;
padding-left: 30rpx;
.agreementText {
color: #387EF4;
}
}
}
.trialStyle {
height: 60rpx;
padding: 40rpx;
font-size: 22rpx;
color: darkgray;
}
</style>
\ No newline at end of file
<template>
<view class="body">
<!-- <status-title :showBack="true">书豆记录</status-title> -->
<z-paging class="flex-1" ref="paging" v-model="dataList" @query="queryList">
<view v-for="(item, i) in dataList" :key="i">
<view class="flex m-20 pd-20" style="background-color:white;border-radius:10rpx;">
<image style="margin: auto 10rpx;width: 60rpx;height: 60rpx;" src="../../static/ic_coin.png">
</image>
<view class="flex1 ml-10">
<view class="mt-10" style="font-size: 28rpx;color: black;">{{item.remark}}</view>
<view class="mt-10" style="font-size: 26rpx;color: darkgray;">
{{item.time}}
</view>
</view>
<view style="margin:auto 10rpx auto auto;font-size: 36rpx;color: steelblue;">
{{ '+'+ item.subValue + '书豆'}}
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script>
import common from '@/mixins/common';
import {
formateTime
} from "@/utils/utils.js"
export default {
name: 'dotRecord',
mixins: [common],
data() {
return {
dataList: []
};
},
methods: {
show() {
if (this.$refs.paging != null) {
this.$refs.paging.refresh();
}
},
myFormateTime(time) {
return formateTime(time, 'yyyy-MM-dd hh:mm:ss')
},
queryList(page, size) {
this.post({
url: '/vedio/assetsRecords/add',
data: {
page,
size
},
showLoading: false,
success: ({
data
}) => {
this.$refs.paging.complete(data.list);
}
});
}
}
};
</script>
<style lang="scss">
.body {
background-color: whitesmoke;
}
</style>
\ No newline at end of file
<template>
<view class="body">
<!-- <status-title :showBack="true">我的订单</status-title> -->
<z-paging class="flex-1" ref="paging" v-model="dataList" @query="queryList" :defaultPageNo="1"
:defaultPageSize="500">
<view v-for="(item, i) in dataList" :key="i">
<view class="flex m-20 pd-20"
style="justify-content:space-between;background-color:white;border-radius:10rpx;">
<view class="flex1">
<view style="font-size: 28rpx;color: black;">{{item.remarks}}</view>
<view style="font-size: 26rpx;color: gray;margin-top: 16rpx;">付款时间:{{item.createtime}}</view>
<view style="font-size: 26rpx;color: gray;margin-top: 1rpx;">订单编号:{{item.orderid}}</view>
</view>
<view style="display: flex;align-items: center;margin-right: 8rpx;font-size: 36rpx;color: red;">
{{item.balance}}
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script>
import common from '@/mixins/common';
export default {
name: 'index',
mixins: [common],
data() {
return {
dataList: []
};
},
methods: {
show() {
if (this.$refs.paging != null) {
this.$refs.paging.refresh();
}
},
queryList(page, size) {
this.post({
url: '/vip/getOrderList',
data: {
page,
size
},
showLoading: false,
success: ({
data
}) => {
if (data.list.length > 0) {
this.$refs.paging.complete([data.list[0]])
} else {
this.$refs.paging.complete([])
}
}
});
}
}
};
</script>
<style lang="scss">
.body {
background-color: whitesmoke;
}
</style>
\ No newline at end of file
<template>
<view class="body">
<z-paging class="flex-1" ref="paging" v-model="dataList" @query="queryList" :defaultPageNo="1"
:defaultPageSize="500">
<view style="font-size: 30rpx;font-weight: 777;margin-left: 12rpx;margin-top: 10rpx;">最近阅读</view>
<view v-for="(item, i) in dataList" :key="i">
<view
style="display: flex;flex-direction: row;background-color:white;border-radius:10rpx;justify-content:space-between;margin: 20rpx;padding-bottom: 20rpx;box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1);">
<view style="display: flex;align-items: center;" @click="handleInfo(item)">
<view style="display: flex;flex-direction: column;margin-left: 20rpx;margin-top: 20rpx;">
<view style="font-size: 30rpx;color: black;">{{item.title}}</view>
<view style="font-size: 22rpx;color: gray;margin-top: 16rpx;">{{item.summary}}</view>
<view style="font-size: 28rpx;color: black;margin-top: 16rpx;">作者:{{item.author}}</view>
</view>
</view>
<view style="display: flex;align-items: center;margin-right: 8rpx;">
<view style="display: flex;flex-direction: column;">
<image v-if="!item.isCollect" @click="handleXing(item)"
style="width: 50rpx;height: 50rpx;display: flex;align-items: right;padding-right: 4rpx;"
src="../../static/home_collect_img_0.png"></image>
<image v-else @click="handleXing(item)"
style="width: 50rpx;height: 50rpx;display: flex;align-items: right;padding-right: 4rpx;"
src="../../static/home_collect_img_1.png"></image>
<view
style="font-size: 22rpx;color: gray;margin-top: 10rpx;display: flex;justify-content: center;">
收藏</view>
</view>
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script>
import common from '@/mixins/common';
import {
navigateTo,
message,
alert,
loading
} from '@/utils/fun.js';
import {
openUrl
} from '@/utils/app+.js';
import {
gotoBookContentPage
} from '../../common/services/page-route.js';
const app = getApp();
export default {
name: 'index',
mixins: [common],
data() {
return {
dataList: []
};
},
methods: {
show() {
if (this.$refs.paging != null) {
this.$refs.paging.refresh();
}
},
queryList(page, size) {
this.post({
url: '/book/readRecordList',
data: {
page,
size
},
showLoading: false,
success: ({
data
}) => {
this.$refs.paging.complete(data.list);
}
});
},
handleInfo(item) {
gotoBookContentPage(item.id, item.shortis)
// var bookId = item.id;
// uni.navigateTo({
// url: `/page-subs/sub_A/book-content/book-content`,
// success: (res) => {
// res.eventChannel.emit("openBookContentPage", {
// bookId
// })
// }
// })
},
handleXing(item) {
var that = this;
//0未收藏,1收藏
if (!item.isCollect) {
this.post({
url: '/book/collect',
data: {
articleId: item.id,
},
showLoading: false,
success: ({
data
}) => {
that.show();
}
});
} else {
this.post({
url: '/book/collectCancel',
data: {
articleId: item.id,
},
showLoading: false,
success: ({
data
}) => {
that.show();
}
});
}
}
}
};
</script>
<style>
.body {
background-color: whitesmoke;
}
.img {
position: relative;
border-radius: 10rpx;
width: 180rpx;
height: 240rpx;
}
</style>
\ No newline at end of file
<template>
<view class="body">
<!-- <status-title :showBack="true">消费记录</status-title> -->
<z-paging class="flex-1" ref="paging" v-model="dataList" @query="queryList">
<view v-for="(item, i) in dataList" :key="i">
<view class="flex m-20 pd-20" style="background-color:white;border-radius:10rpx;">
<image style="margin: auto 10rpx;width: 60rpx;height: 60rpx;" src="../../static/ic_shop.png">
</image>
<view class="flex1 ml-10">
<view class="mt-10" style="font-size: 28rpx;color: black;">{{item.remark}}
</view>
<view class="mt-10" style="font-size: 26rpx;color: darkgray;">
{{item.time}}
</view>
</view>
<view style="margin:auto 10rpx auto auto;font-size: 36rpx;color: steelblue;">
{{ '-'+ item.subValue + '书豆'}}
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script>
import common from '@/mixins/common';
import {
formateTime
} from "@/utils/utils.js"
export default {
name: 'useDotRecord',
mixins: [common],
data() {
return {
dataList: []
};
},
methods: {
show() {
if (this.$refs.paging != null) {
this.$refs.paging.refresh();
}
},
myFormateTime(time) {
return formateTime(time, 'yyyy-MM-dd hh:mm:ss')
},
queryList(page, size) {
this.post({
url: '/vedio/assetsRecords/sub',
data: {
page,
size
},
showLoading: false,
success: ({
data
}) => {
this.$refs.paging.complete(data.list);
}
});
}
}
};
</script>
<style lang="scss">
.body {
background-color: whitesmoke;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment