init
This commit is contained in:
454
pages/blog/resource.vue
Normal file
454
pages/blog/resource.vue
Normal file
@@ -0,0 +1,454 @@
|
||||
<template>
|
||||
<view style="min-height: 100vh;position: relative;">
|
||||
|
||||
<!-- 顶部图片 -->
|
||||
<view class="top-img">
|
||||
<image class="ui-img" :src="resourceInfo.showImg" mode="aspectFill"></image>
|
||||
<text @click="back()" class="cuIcon-back backbut"></text>
|
||||
</view>
|
||||
<view class="resource-box">
|
||||
<view class="resource-view">
|
||||
<view class="resource-img">
|
||||
<image class="ui-img" src="https://img.yidaima.cn/feast/xiazai.svg" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="resource-font">
|
||||
{{resourceInfo.resourceTitle}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="resource-list">
|
||||
<view v-if="type != 1" class="resource-view">
|
||||
<view class="resource-img2">
|
||||
<image class="ui-img" src="https://img.yidaima.cn/shuoming.svg" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="resource-font2">
|
||||
下载说明
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="type != 1" class="data-view">
|
||||
<view style="border: 1px solid #ffffff" class="ql-container ql-snow">
|
||||
<rich-text :nodes="contentDate" class="ql-editor"></rich-text>
|
||||
</view>
|
||||
<!-- <mp-html class="ql-editor" :tag-style="tag_style" :content="contentDate" :container-style="container_style"
|
||||
selectable="true"> </mp-html> -->
|
||||
</view>
|
||||
|
||||
<!-- 资源列表 -->
|
||||
<view>
|
||||
<view class="resource-view">
|
||||
<view class="resource-img2">
|
||||
<image class="ui-img" src="https://img.yidaima.cn/feastwenjian.svg" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="resource-font2">
|
||||
资源列表
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="isLookAd == 0" class="shuoming2">复制下方链接打开手机浏览器进行下载!!!</view>
|
||||
<view v-else class="shuoming2">请先点击下方按钮即可获取资源下载列表!</view>
|
||||
<view v-if="isLookAd == 0" v-for="(item,index) in resourceInfo.appResourceListList" :key="index" class="file-list">
|
||||
<view class="resource-view">
|
||||
<view class="resource-img3">
|
||||
<image class="ui-img" src="https://img.yidaima.cn/feast/files.svg" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="resource-font3">
|
||||
{{item.listName}}<text class="password" v-if="item.password != '' && item.password != null"> 密码:{{item.password}} </text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="file-url-box"><text class="file-url">{{item.listUrl}}</text><text @click="copy(item.listUrl)" class="file-copy">复制</text></view>
|
||||
</view>
|
||||
|
||||
<view v-if="adUnitId" style="width: 100%; margin-top: 50rpx;">
|
||||
<ad-custom :unit-id="adUnitId" ad-intervals="30" ></ad-custom>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="isLookAd ==1 || isLookAd == 2" style="height: 140rpx; width: 100%;"></view>
|
||||
<view v-if="isLookAd ==1" @click="lookAd()" class="resource-ad">
|
||||
广告查看
|
||||
</view>
|
||||
<view v-if="isLookAd ==2" @click="jfAd()" class="resource-ad">
|
||||
积分获取( {{resourceInfo.adNumber}} 积分 )
|
||||
</view>
|
||||
<u-toast ref="uToast"></u-toast>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getResource,getResourceByUserId,resourceDownLoad,appGetUserById,exchangeResource
|
||||
} from "@/api/app/index.js"
|
||||
import config from '@/config'
|
||||
let videoAd = null;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
baseUrl: config.baseUrl,
|
||||
adUnitId:"",
|
||||
adUnitId2:"",
|
||||
id:null,
|
||||
resourceInfo:{},
|
||||
isLookAd:null,
|
||||
tag_style: {
|
||||
h1: 'line-height: 50px;font-size:16px;',
|
||||
h2: 'line-height: 50px;font-size:16px',
|
||||
h3: 'line-height: 50px;font-size:16px',
|
||||
h4: 'line-height: 50px;font-size:16px',
|
||||
},
|
||||
container_style: 'font-size:15px;overflow-x: hidden;line-height:30px;letter-spacing:1px',
|
||||
contentDate: "",
|
||||
userId: null,
|
||||
type:0
|
||||
}
|
||||
},
|
||||
// 分享好友配置
|
||||
onShareAppMessage(res) {
|
||||
var that = this;
|
||||
return {
|
||||
title: that.resourceInfo.resourceTitle,
|
||||
imageUrl: that.resourceInfo.showImg,
|
||||
path: 'pages/blog/resource?id='+that.resourceInfo.id+"&share=1",
|
||||
}
|
||||
},
|
||||
onShareTimeline(){
|
||||
var that = this;
|
||||
return {
|
||||
title:that.resourceInfo.resourceTitle,
|
||||
query:{
|
||||
id: that.resourceInfo.id,
|
||||
share: 1
|
||||
},
|
||||
imageUrl:that.resourceInfo.showImg
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.adUnitId = uni.getStorageSync("sysSet").zyinfoAd
|
||||
this.adUnitId2 = uni.getStorageSync("sysSet").downVideoAd
|
||||
this.userId = uni.getStorageSync("userInfo").userId
|
||||
this.id = option.id
|
||||
if(option.type){
|
||||
this.type = option.type
|
||||
}
|
||||
// 请求详情
|
||||
this.getInfo()
|
||||
//初始化激励广告
|
||||
this.CreateAd()
|
||||
},
|
||||
methods: {
|
||||
CreateAd(){
|
||||
var that = this;
|
||||
if (this.adUnitId2 != '') {
|
||||
if (wx.createRewardedVideoAd) {
|
||||
videoAd = wx.createRewardedVideoAd({
|
||||
adUnitId: this.adUnitId2
|
||||
})
|
||||
videoAd.onLoad(() => {})
|
||||
videoAd.onError((err) => {
|
||||
that.$refs.uToast.show({
|
||||
type: 'error',
|
||||
title: '',
|
||||
message: "请使用移动端设备访问",
|
||||
icon: false
|
||||
})
|
||||
})
|
||||
videoAd.onClose((res) => {
|
||||
if (res && res.isEnded) {
|
||||
// that.$refs.uToast.show({
|
||||
// type: 'success',
|
||||
// title: '',
|
||||
// message: "╮(๑•́ ₃•̀๑)╭ 谢谢您的支持 ",
|
||||
// icon: false
|
||||
// })
|
||||
that.isLookAd = 0
|
||||
resourceDownLoad({id: that.id}).then(response => {})
|
||||
} else {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
jfAd(){
|
||||
var that = this;
|
||||
appGetUserById(that.userId).then(response => {
|
||||
if (that.resourceInfo.adNumber > response.user.integral) {
|
||||
uni.showModal({
|
||||
title: '积分不足',
|
||||
content: '您的积分为 '+response.user.integral+' ,签到做任务可获得积分',
|
||||
cancelText: "取消",
|
||||
confirmText: "获取积分",
|
||||
confirmColor:'#ff0000',
|
||||
cancelColor:'#000000',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
// 执行确认后的操作
|
||||
uni.switchTab({
|
||||
url: '/pages/mine/index'
|
||||
});
|
||||
}
|
||||
else {
|
||||
// 执行取消后的操作
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
} else {
|
||||
var data = {
|
||||
source: '资源兑换',
|
||||
isAdd: 1,
|
||||
integralNumber: that.resourceInfo.adNumber,
|
||||
userId: that.userId,
|
||||
resourceId: that.id
|
||||
}
|
||||
exchangeResource(data).then(response => {
|
||||
that.$refs.uToast.show({
|
||||
type: 'success',
|
||||
title: '',
|
||||
message: "兑换成功",
|
||||
icon: false
|
||||
})
|
||||
that.isLookAd = 0
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
lookAd(){
|
||||
// 用户触发广告后,显示激励视频广告
|
||||
if (videoAd) {
|
||||
videoAd.show().catch(() => {
|
||||
// 失败重试
|
||||
videoAd.load()
|
||||
.then(() => videoAd.show())
|
||||
.catch(err => {
|
||||
console.error('激励视频 广告显示失败', err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
//下载次数+1
|
||||
//添加广告记录
|
||||
},
|
||||
getInfo(){
|
||||
var that = this;
|
||||
getResourceByUserId(this.id, this.userId).then(response => {
|
||||
console.log(response.data)
|
||||
if(response.data.isAd == 0){
|
||||
this.isLookAd = 0
|
||||
resourceDownLoad({id: this.id}).then(response => {})
|
||||
}else if(response.data.isAd == 1){
|
||||
this.isLookAd = 1
|
||||
//resourceDownLoad({id: this.id}).then(response => {})
|
||||
}else{
|
||||
this.isLookAd = 2
|
||||
|
||||
}
|
||||
that.resourceInfo = response.data
|
||||
var str = that.resourceInfo.explain
|
||||
if (str.includes("/dev-api")) {
|
||||
that.resourceInfo.explain = str.replace("/dev-api", that.baseUrl)
|
||||
} else {
|
||||
that.resourceInfo.explain = str.replace("/prod-api", that.baseUrl)
|
||||
}
|
||||
that.contentDate = response.data.explain
|
||||
.replace(/<h1([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<h1')
|
||||
.replace(/<h1([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<h1')
|
||||
.replace(/<h1>/ig, '<h1 class="h1">')
|
||||
|
||||
.replace(/<h2([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<h2')
|
||||
.replace(/<h2([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<h2')
|
||||
.replace(/<h2>/ig, '<h2 class="h2">')
|
||||
|
||||
.replace(/<h3([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<h3')
|
||||
.replace(/<h3([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<h3')
|
||||
.replace(/<h3>/ig, '<h3 class="h3">')
|
||||
|
||||
.replace(/<h4([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<h4')
|
||||
.replace(/<h4([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<h4')
|
||||
.replace(/<h4>/ig, '<h4 class="h4">')
|
||||
|
||||
.replace(/<h5([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<h5')
|
||||
.replace(/<h5([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<h5')
|
||||
.replace(/<h5>/ig, '<h5 class="h4">')
|
||||
|
||||
.replace(/<h6([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<h6')
|
||||
.replace(/<h6([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<h6')
|
||||
.replace(/<h6>/ig, '<h6 class="h6">')
|
||||
|
||||
.replace(/<code([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<code')
|
||||
.replace(/<code([\s\w"=\/\.:;]+)((?:(class="[^"]+")))/ig, '<code')
|
||||
.replace(/<code>/ig, '<code class="language-css">')
|
||||
})
|
||||
},
|
||||
copy(url){
|
||||
var that = this;
|
||||
uni.setClipboardData({
|
||||
data: url,
|
||||
showToast: false,
|
||||
success: function () {
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
back(val) {
|
||||
const pages = getCurrentPages();
|
||||
if (pages.length > 1) {
|
||||
uni.navigateBack()
|
||||
} else {
|
||||
uni.switchTab({
|
||||
url: '/pages/index'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #ffffff;
|
||||
min-height: 100%;
|
||||
}
|
||||
.password{
|
||||
font-size: 24rpx;
|
||||
color: #4a4a4a;
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
.data-view {
|
||||
margin: 0upx 20upx;
|
||||
font-size: 34upx;
|
||||
color: #333232;
|
||||
line-height: 60upx;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.jiesao{
|
||||
padding: 20rpx 30rpx;
|
||||
}
|
||||
.resource-ad{
|
||||
height: 100rpx;
|
||||
width: 90%;
|
||||
margin-left: 5%;
|
||||
margin-bottom: 40rpx;
|
||||
border-radius: 100rpx;
|
||||
background: #7a60fd;
|
||||
position: absolute;
|
||||
bottom: 0; /* 将按钮固定在容器的底部 */
|
||||
line-height: 100rpx;
|
||||
text-align: center;
|
||||
font-size: 38rpx;
|
||||
color: white;
|
||||
}
|
||||
.file-list{
|
||||
margin: 30rpx;
|
||||
}
|
||||
.file-url-box{
|
||||
background: #dcdcdc;
|
||||
height: 80rpx;
|
||||
width: 100%;
|
||||
border-radius: 20rpx;
|
||||
margin-top: 20rpx;
|
||||
line-height: 80rpx;
|
||||
|
||||
}
|
||||
.file-url{
|
||||
float: left;
|
||||
margin-left: 40rpx;
|
||||
white-space: nowrap; /* 防止文本换行 */
|
||||
overflow: hidden; /* 隐藏超出容器的内容 */
|
||||
text-overflow: ellipsis; /* 当文本溢出时显示省略号 */
|
||||
/* 你还需要设置容器的宽度,以便知道何时文本应该溢出 */
|
||||
width: 450rpx; /* 或者其他你需要的宽度 */
|
||||
}
|
||||
.file-copy{
|
||||
float: right;
|
||||
margin-right: 40rpx;
|
||||
}
|
||||
.shuoming{
|
||||
margin: 25rpx 25rpx 30rpx 25rpx;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
.shuoming2{
|
||||
margin: 25rpx 35rpx 30rpx 35rpx;
|
||||
font-size: 26rpx;
|
||||
background-color: #fff9d7;
|
||||
height: 85rpx;
|
||||
line-height: 85rpx;
|
||||
text-align: center;
|
||||
border-radius: 20rpx;
|
||||
color: orange;
|
||||
}
|
||||
.resource-list{
|
||||
margin: 40rpx 20rpx;
|
||||
}
|
||||
|
||||
.resource-font {
|
||||
font-weight: 600;
|
||||
font-size: 35rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.resource-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.resource-img {
|
||||
height: 60rpx;
|
||||
width: 60rpx;
|
||||
}
|
||||
.resource-font3 {
|
||||
font-weight: 400;
|
||||
font-size: 25rpx;
|
||||
margin-left: 15rpx;
|
||||
}
|
||||
.resource-img3 {
|
||||
height: 30rpx;
|
||||
width: 30rpx;
|
||||
}
|
||||
.resource-font2 {
|
||||
font-weight: 600;
|
||||
font-size: 30rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.resource-img2 {
|
||||
height: 45rpx;
|
||||
width: 45rpx;
|
||||
}
|
||||
|
||||
.resource-box{
|
||||
min-height: 350rpx;
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
border-radius: 50rpx;
|
||||
margin-top: -60rpx;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 50rpx 30rpx;
|
||||
}
|
||||
|
||||
.top-img {
|
||||
height: 500upx;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.ui-img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.backbut {
|
||||
position: absolute;
|
||||
left: 20rpx;
|
||||
top: 100rpx;
|
||||
font-size: 50rpx;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user