8 changed files with 405 additions and 0 deletions
@ -0,0 +1,123 @@ |
|||||
|
// pages/resource/detail/index.js
|
||||
|
import { TopicModel } from '../../../models/topic.js' |
||||
|
let topicModel = new TopicModel() |
||||
|
Page({ |
||||
|
|
||||
|
/** |
||||
|
* 页面的初始数据 |
||||
|
*/ |
||||
|
data: { |
||||
|
titlePic:"/images/temp_1.png", |
||||
|
unStar: '/images/common/star.png', |
||||
|
star: '/images/common/star_light.png', |
||||
|
detail:{}, |
||||
|
isCollect:false |
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面加载 |
||||
|
*/ |
||||
|
onLoad: function (options) { |
||||
|
var id = options.id; |
||||
|
topicModel.getResourceDetail(id,res=>{ |
||||
|
|
||||
|
if(res.result.isCollection == 1){ |
||||
|
this.setData({ |
||||
|
isCollect:true, |
||||
|
}) |
||||
|
}else{ |
||||
|
this.setData({ |
||||
|
isCollect:false, |
||||
|
}) |
||||
|
} |
||||
|
this.setData({ |
||||
|
detail:res.result, |
||||
|
}) |
||||
|
|
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面初次渲染完成 |
||||
|
*/ |
||||
|
onReady: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面显示 |
||||
|
*/ |
||||
|
onShow: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面隐藏 |
||||
|
*/ |
||||
|
onHide: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面卸载 |
||||
|
*/ |
||||
|
onUnload: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||
|
*/ |
||||
|
onPullDownRefresh: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 页面上拉触底事件的处理函数 |
||||
|
*/ |
||||
|
onReachBottom: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 用户点击右上角分享 |
||||
|
*/ |
||||
|
onShareAppMessage: function () { |
||||
|
|
||||
|
}, |
||||
|
previewImage:function(e){ |
||||
|
// var current = e.target.dataset.src;
|
||||
|
var th = this; |
||||
|
if(th.data.detail.titlePic){ |
||||
|
var urls = [th.data.detail.titlePic]; |
||||
|
wx.previewImage({ |
||||
|
urls:urls// 需要预览的图片http链接列表
|
||||
|
}) |
||||
|
}else{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
onClickCollect:function(){ |
||||
|
this.setData({ |
||||
|
isCollect: !this.data.isCollect |
||||
|
}) |
||||
|
this.fetchTopicCollect(); |
||||
|
|
||||
|
|
||||
|
}, |
||||
|
|
||||
|
fetchTopicCollect(){ |
||||
|
let id = this.data.detail.id |
||||
|
topicModel.resourceCollect(id,res =>{ |
||||
|
//console.log('收藏')
|
||||
|
if(res.code === 200){ |
||||
|
wx.showToast({ |
||||
|
title: '收藏成功', |
||||
|
icon: 'none' |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
}) |
@ -0,0 +1,3 @@ |
|||||
|
{ |
||||
|
"usingComponents": {} |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
<!--pages/resource/detail/index.wxml--> |
||||
|
|
||||
|
<view class="title"> |
||||
|
<view class="left"> |
||||
|
<view class="articleImg"> |
||||
|
<image src="{{detail.titlePic ? detail.titlePic : titlePic}}" bindtap="previewImage" mode="widthFix" style="width:100%;"></image> |
||||
|
</view> |
||||
|
<!-- <image class="articleImg" src="{{detail.titlePic ? detail.titlePic : titlePic}}" bindtap="previewImage"></image> --> |
||||
|
<view class="content"> |
||||
|
<view class="tit">{{detail.title}}</view> |
||||
|
<view class="r_type">{{detail.typeName}}</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="right"> |
||||
|
<image class="artice_collect" src="{{isCollect ? star : unStar}}" bindtap="onClickCollect"></image> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="text"> |
||||
|
<rich-text nodes="{{detail.content}}"></rich-text> |
||||
|
</view> |
@ -0,0 +1,61 @@ |
|||||
|
/* pages/resource/detail/index.wxss */ |
||||
|
/* @import '../../style/font.wxss'; */ |
||||
|
page{ |
||||
|
width: 100%; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
flex-direction: column; |
||||
|
} |
||||
|
|
||||
|
.title{ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
width: 90%; |
||||
|
min-height: 90px; |
||||
|
border-bottom: 2px solid whitesmoke; |
||||
|
margin-top:5px; |
||||
|
} |
||||
|
|
||||
|
.left{ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
flex: 1; |
||||
|
} |
||||
|
|
||||
|
.right{ |
||||
|
width: 15px; |
||||
|
text-align:right; |
||||
|
} |
||||
|
|
||||
|
.articleImg{ |
||||
|
width: 55px; |
||||
|
height: 55px; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
/* border-radius: 50%; */ |
||||
|
} |
||||
|
|
||||
|
.content{ |
||||
|
margin-left: 15px; |
||||
|
margin-right: 20px; |
||||
|
flex: 1; |
||||
|
} |
||||
|
|
||||
|
.tit{ |
||||
|
width: 100%; |
||||
|
font-weight:1000; |
||||
|
} |
||||
|
|
||||
|
.r_type{ |
||||
|
font-size: 13px; |
||||
|
} |
||||
|
|
||||
|
.artice_collect { |
||||
|
width: 20px; |
||||
|
height: 20px; |
||||
|
} |
||||
|
|
||||
|
.text{ |
||||
|
width: 90%; |
||||
|
} |
@ -0,0 +1,86 @@ |
|||||
|
// pages/resource/index.js
|
||||
|
import { TopicModel } from '../../models/topic.js' |
||||
|
let topicModel = new TopicModel() |
||||
|
Page({ |
||||
|
|
||||
|
/** |
||||
|
* 页面的初始数据 |
||||
|
*/ |
||||
|
data: { |
||||
|
titlePic:"/images/temp_1.png", |
||||
|
page:1, |
||||
|
list:[], |
||||
|
show:true |
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面加载 |
||||
|
*/ |
||||
|
onLoad: function (options) { |
||||
|
var typeCode = options.typeCode; |
||||
|
topicModel.getResourceList(typeCode,1,res=>{ |
||||
|
this.setData({ |
||||
|
list:res.result.records |
||||
|
}) |
||||
|
|
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面初次渲染完成 |
||||
|
*/ |
||||
|
onReady: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面显示 |
||||
|
*/ |
||||
|
onShow: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面隐藏 |
||||
|
*/ |
||||
|
onHide: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 生命周期函数--监听页面卸载 |
||||
|
*/ |
||||
|
onUnload: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||
|
*/ |
||||
|
onPullDownRefresh: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 页面上拉触底事件的处理函数 |
||||
|
*/ |
||||
|
onReachBottom: function () { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
/** |
||||
|
* 用户点击右上角分享 |
||||
|
*/ |
||||
|
onShareAppMessage: function () { |
||||
|
|
||||
|
}, |
||||
|
detail:function(e){ |
||||
|
if (!e.currentTarget.dataset.id){ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
wx.navigateTo({ |
||||
|
url: 'detail/index?id=' + e.currentTarget.dataset.id |
||||
|
}) |
||||
|
} |
||||
|
}) |
@ -0,0 +1,5 @@ |
|||||
|
{ |
||||
|
"usingComponents": { |
||||
|
"van-popup": "/components/vant/popup/index" |
||||
|
} |
||||
|
} |
@ -0,0 +1,31 @@ |
|||||
|
<!--pages/resource/index.wxml--> |
||||
|
<view class="container"> |
||||
|
<view class="column" wx:for="{{ list }}" bindtap="detail" data-id="{{item.id}}"> |
||||
|
<view class="left"> |
||||
|
<view class="articleImg"> |
||||
|
<image src="{{item.titlePic ? item.titlePic : titlePic}}" mode="widthFix" style="width:100%;"></image> |
||||
|
</view> |
||||
|
|
||||
|
<view class="content"> |
||||
|
<view class="title">{{item.title}}</view> |
||||
|
<view class="r_type">{{item.typeName}}</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="right"><text class="fa fa-angle-right fa-lg"></text></view> |
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
</view> |
||||
|
<van-popup |
||||
|
show="{{ show }}" |
||||
|
bind:close="onClose" |
||||
|
custom-style="height: 80%;width:80%" |
||||
|
|
||||
|
> |
||||
|
<view class="tips"> |
||||
|
<view class="tips-con"> |
||||
|
内容内容内容内容内容内容内容 |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
</van-popup> |
@ -0,0 +1,76 @@ |
|||||
|
/* pages/resource/index.wxss */ |
||||
|
@import '../../style/font.wxss'; |
||||
|
page{ |
||||
|
width: 100%; |
||||
|
display: flex; |
||||
|
background-color: whitesmoke; |
||||
|
} |
||||
|
.container{ |
||||
|
display: flex; |
||||
|
width: 100%; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
background-color: white; |
||||
|
margin-top:10px; |
||||
|
} |
||||
|
|
||||
|
.column{ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
width: 90%; |
||||
|
height: 90px; |
||||
|
border-bottom: 2px solid whitesmoke; |
||||
|
} |
||||
|
|
||||
|
.left{ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
flex: 1; |
||||
|
} |
||||
|
|
||||
|
.right{ |
||||
|
width: 15px; |
||||
|
text-align:right; |
||||
|
} |
||||
|
|
||||
|
.articleImg{ |
||||
|
width: 55px; |
||||
|
height: 55px; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
/* border-radius: 50%; */ |
||||
|
} |
||||
|
|
||||
|
.content{ |
||||
|
margin-left: 15px; |
||||
|
margin-right: 20px; |
||||
|
flex: 1; |
||||
|
} |
||||
|
|
||||
|
.title{ |
||||
|
width: 100%; |
||||
|
display: -webkit-box; |
||||
|
-webkit-line-clamp: 1; |
||||
|
overflow: hidden; |
||||
|
text-overflow: ellipsis; |
||||
|
-webkit-box-orient: vertical; |
||||
|
word-break: break-all; |
||||
|
font-weight:1000; |
||||
|
} |
||||
|
|
||||
|
.r_type{ |
||||
|
font-size: 13px; |
||||
|
} |
||||
|
.tips{ |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
} |
||||
|
.tips-con{ |
||||
|
width: 90%; |
||||
|
height: 90; |
||||
|
} |
||||
|
|
Loading…
Reference in new issue