Initial Commit

master
unknown 5 months ago
commit 6e8d9221c8

14
.gitignore vendored

@ -0,0 +1,14 @@
# Windows
[Dd]esktop.ini
Thumbs.db
$RECYCLE.BIN/
# macOS
.DS_Store
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
# Node.js
node_modules/

Binary file not shown.

@ -0,0 +1,57 @@
//app.js
var moviesInfo = require('data/movieInfo.js');
var talksInfo = require('data/talkInfo.js');
App({
globalData: {
moviearray:[],
talkarray:[],
moviehistoryarray:[],
talkhistoryarray:[],
},
MovieRefresh:function(options){
var postlist=moviesInfo.postList
var array=new Array()
console.log(postlist)
var postsCollected = wx.getStorageSync("posts_collected");
for(var i=0;i<postlist.length;i++){
if(postsCollected[i]==true)
array.push(postlist[i]);
}
this.globalData.moviearray=array
console.log(this.globalData.moviearray)
},
TalkRefresh:function(options){
var postlist=talksInfo.postList
var array=new Array()
console.log(postlist)
var postsCollected = wx.getStorageSync("posts_collected2");
for(var i=0;i<postlist.length;i++){
if(postsCollected[i]==true)
array.push(postlist[i]);
}
this.globalData.talkarray=array
console.log(this.globalData.talkarray)
},
MovieHistoryRefresh:function(options){
var postlist=moviesInfo.postList
var array=new Array()
console.log(postlist)
var postsCollected = wx.getStorageSync("historys_list");
for(var i=0;i<postsCollected.length;i++){
array.push(postlist[postsCollected[i]]);
}
this.globalData.moviehistoryarray=array
console.log(this.globalData.moviehistoryarray)
},
TalkHistoryRefresh:function(options){
var postlist=talksInfo.postList
var array=new Array()
console.log(postlist)
var postsCollected = wx.getStorageSync("historys_list2");
for(var i=0;i<postsCollected.length;i++){
array.push(postlist[postsCollected[i]]);
}
this.globalData.talkhistoryarray=array
console.log(this.globalData.talkhistoryarray)
},
})

@ -0,0 +1,54 @@
{
"pages": [
"pages/popular/popular",
"pages/talking/talking",
"pages/moviemore/moviemore",
"pages/talkingmore/talkingmore",
"pages/favorite/favorite",
"pages/my/my",
"pages/ii/ii",
"pages/history/history",
"pages/photo/photo",
"pages/skin/skin"
],
"window": {
"navigationBarBackgroundColor": "#47a86c",
"navigationBarTextStyle": "white",
"navigationBarTitleText": "中国古代数学",
"backgroundColor": "#fff",
"backgroundTextStyle": "dark",
"enablePullDownRefresh": true
},
"tabBar": {
"backgroundColor": "#ffffff",
"color": "#999999",
"list": [
{
"pagePath": "pages/popular/popular",
"text": "首页",
"iconPath": "pages/images/ciwei.png",
"selectedIconPath": "pages/images/ciwei_hl.png"
},
{
"pagePath": "pages/ii/ii",
"text": "视频",
"iconPath": "pages/images/popular_icon.png",
"selectedIconPath": "pages/images/popular_active_icon.png"
},
{
"pagePath": "pages/talking/talking",
"text": "科普",
"iconPath": "pages/images/ciwei.png",
"selectedIconPath": "pages/images/ciwei_hl.png"
},
{
"pagePath": "pages/my/my",
"text": "我的",
"iconPath": "pages/images/ciwei.png",
"selectedIconPath": "pages/images/ciwei_hl.png"
}
]
},
"sitemapLocation": "sitemap.json"
}

@ -0,0 +1,10 @@
/**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 200rpx 0;
box-sizing: border-box;
}

@ -0,0 +1,63 @@
var movieInfo = [
{
img:'/static/img/OIP-C.jpg',
title:'里耶秦简《九九表》',
director:["里耶秦"],
actor:["未知"],
score:'7.9',
year:'2019',
saw_count:'23142',
want_count:'45421',
ratings_count:'2.3w',
content: '进入二十一世纪秦代考古迎来又一重大发现。2002年6月湖南省湘西州龙山县里耶镇里耶古城遗址一号井共发现36000多枚简牍主要是秦代洞庭郡迁陵县的公文档案时间跨度从秦王政二十五年 (公元前222年) 到秦二世胡亥二年 (公元前208年)包含了多方面完整而丰富的内容极大地填补了秦代史料的缺失。从里耶秦简中发现的三份九九表口诀可以看出当时乘法口诀文字内容固定已被普遍使用。无独有偶2008年清华大学收藏的战国简中发现了我国历史上更早、更强大的十进制“大九九”表',
postId:'0',
},
{
img:'/static/img/2222.jpg',
title:'圆周率',
director:["祖冲之"],
actor:["未知"],
score:'9.1',
year:'429年500',
saw_count:'23142',
want_count:'45421',
ratings_count:'3.4w',
content: '出身范阳祖氏。一生钻研自然科学其主要贡献在数学、天文历法和机械制造三方面。他在刘徽开创的探索圆周率的精确方法的基础上首次将“圆周率”精算到小数第七位即在3.1415926和3.1415927之间他提出的“祖率”对数学的研究有重大贡献。直到16世纪阿拉伯数学家阿尔·卡西才打破了这一纪录由他撰写的《大明历》是当时最科学最进步的历法对后世的天文研究提供了正确的方法。其主要著作有《安边论》《缀术》《述异记》《历议》等',
postId:'1',
},
{
img:'/static/img/download.jpg',
title:'勾股定理',
director:["周髀"],
actor:["未知"],
score:'6.3',
year:'公元前1世纪',
saw_count:'23142',
want_count:'45421',
ratings_count:'4.2w',
content: '《勾股定理是一个基本的初等几何定理直角三角形两直角边的平方和等于斜边的平方。如果直角三角形两直角边为a和b斜边为c那么a²+b²=c²(a,b,c)叫做勾股数组。勾股定理现约有400种证明方法是数学定理中证明方法最多的定理之一。勾股定理是人类早期发现并证明的重要数学定理之一用代数思想解决几何问题的最重要的工具之一也是数形结合的纽带之一。远在公元前约三千年的古巴比伦人就知道和应用勾股定理还知道许多勾股数组。古埃及人也应用过勾股定理。在中国商朝的商高提出了“勾三股四弦五”的勾股定理的特例。在西方最早提出并证明此定理的为公元前6世纪古希腊的毕达哥拉斯他用演绎法证明了直角三角形斜边平方等于两直角边平方之和因而西方人都习惯地称这个定理为毕达哥拉斯定理。',
postId:'2',
},
{
img:'/static/img/333.jpg',
title:'九章算术',
director:["刘徽"],
actor:["未知"],
score:'9.1',
year:'1084',
saw_count:'23142',
want_count:'45421',
ratings_count:'1.1w',
content: '《九章算术》是中国古代第一部数学专著,是《算经十书》中最重要的一种,是一本综合性的历史著作,是当时世界上最简练有效的应用数学,它的出现标志中国古代数学形成了完整的体系。刘徽是魏晋期间伟大的数学家,中国古典数学理论的奠基人之一,他定义了若干数学概念,全面论证了《九章算术》的公式解法,提出了许多重要的思想、方法和命题,他在数学理论方面成绩斐然。刘徽对数学概念的定义抽象而严谨。他揭示了概念的本质,基本符合现代逻辑学和数学对概念定义的要求。',
postId:'3',
},
]
// var a = "2" 可以随便添加
// 给脚本文件定义一个出口
module.exports = {
postList: movieInfo,
// a_key: a
}

@ -0,0 +1,12 @@
var skinList=[
{title: '绚丽',
imgUrl: '/static/img/color.jpg'
},
{title: '冰雪',
imgUrl: '/static/img/ice.jpg'
},
]
module.exports = {
postList: skinList,
// a_key: a
}

@ -0,0 +1,32 @@
var talkInfo=[
{
date: '2024-06-20 21:12:27',
title: '北大天才韦东奕',
imgSrc: '/static/img/talking1.jpg',
avatar: '/static/img/author1.jpg',
content: '韦神全名韦东奕1991年出生于济南现任北京大学数学科学学院助理教授是位90后“青椒”也是位智商160+的数学天才。',
reading: '2829',
collection: '589',
headImgSrc: '/static/img/talking1.jpg',
author: '新华社',
detail: "对此北大数学院院长回应暂不清楚此事但别人做不出来韦东奕能做出来是很平常的事的确很多普通人认为不可能的事情在韦神身上却是稀松平常。15岁入选数学奥赛国家集训队集训高中时两次在国际奥数竞赛中以满分获得金牌 22岁在丘成桐大学生数学竞赛中一举斩获华罗庚金奖、陈省身金奖、林家翘金奖、许宝騄金奖、周炜良银奖、以及个人全能金奖人才在哪里都受欢迎。哈佛和麻省理工都曾向韦神抛出橄榄枝。哈佛给出了一系列优待条件甚至愿意打破校规表示只要他愿意就读哈佛可以直接免掉英语考试。但韦神最终还是选择留在国内而且保持着艰苦朴素、低调朴实的生活作风。他淡泊名利箪食瓢饮喝的是用矿泉水、瓶装的温开水吃的是白馒头用的是老人机。传闻他每个月花费不超过300元甚至连智能手机都是因为查看健康码、行程码而新近添置。 外表朴实无华,内在却是数学界“绝世高手”的韦神,也被人戏称为“北大扫地僧”。其实,这并不是韦神第一次上热搜 2021年6月曾有人街采到韦神。当时的他身穿黑色运动服一手拿着一瓶1.5L的矿泉水,一手拎着一袋馒头,形象朴实无华,十分腼腆,和普通男大学生无异直到后来才有人指出,这就是北大数学院的传奇人物“韦神”。",
postId: 0,
},
{
date: '2024-06-20 09:11:49',
title: '北大数学天才”柳智宇',
imgSrc: '/static/img/11.webp',
avatar: '/static/img/author1.jpg',
content: '2006年18岁的柳智宇获得国际奥赛满分金牌被保送至北京大学。大学毕业时拿到了美国麻省理工学院全额奖学金。在众人仰望的高光时刻他却转身遁入空门出家为僧。11年半后下山还俗投身心理学行业而后结婚并创办了自己的公司',
reading: '2129',
collection: '389',
headImgSrc: '/static/img/talking2.jpg',
author: '新华社',
detail: "柳智宇年少成名,曾获得俄罗斯高中数学竞赛金牌和国际数学奥林匹克竞赛金牌,他的成长之路备受瞩目。然而,在这光环之下,他经历了常人难以想象的艰辛。他回忆道:“高三那年,数学竞赛进入关键阶段,我的眼睛却出现了严重问题。原本每天能学习十几个小时的我,只能正常用眼一两个小时。每天就是看书、做题,原本计算是我的强项,但眼睛的病痛让我无法承受大量的计算。我只能摸索出一套不用眼的解题方法,把图形拆解为局部,记在脑子里。即使如此,原本简单的题目也变得异常痛苦。数学看似是我该走的光明大道,但却让我不得不重新审视自己的未来。” 2006年18岁的柳智宇被保送至北京大学数学系被誉为“北大数学天才”。然而他坦言“除了数学我对人生、人际关系和未来都充满了困惑和迷茫。”在获得国际奥赛金牌的同时他其实正承受着身体的痛苦和内心的孤独。 大学期间柳智宇走上了一条成长与疗愈的道路逐渐找到了方向。然而在2010年7月当他即将获得美国麻省理工学院全额奖学金并踏上飞往美国的飞机时他却做出了一个令人震惊的决定——选择上山出家。 “去修行,更适合我当时的生命状态。”柳智宇解释道。在寺庙中,他书写佛学理论和文章,给几十人的团体讲课,参与编纂《南山律典校释》并出版,还参与出坡劳动。同时,在母亲的推荐下,他开始学习心理学课程。面对周围人的不解和质疑,柳智宇坚定地说:“很多人问过我,是否后悔放弃麻省理工和数学,选择出家。但我的答案是从未后悔过。那些都是别人眼中的道路和成功。从数学到佛学再到心理学,我追寻的是人生的智慧与大爱,这是一以贯之的",
postId: 1,
},
]
module.exports = {
postList: talkInfo,
// a_key: a
}

@ -0,0 +1,39 @@
// pages/favorite/favorite.js
var app = getApp()
Page({
data: {
moviearray:[],
talkarray:[],
show: 'movie_favorite',
},
onLoad: function (options) {
app.MovieRefresh()
app.TalkRefresh()
// console.log(app.globalData.moviearray)
this.setData({
moviearray: app.globalData.moviearray,
talkarray: app.globalData.talkarray
})
},
onPullDownRefresh: function () {
this.onLoad()
},
jumpBtnMovie:function(options){
var postId = options.currentTarget.dataset.postid;
wx.navigateTo({
url: '/pages/moviemore/moviemore?id='+postId,
})
},
jumpBtnTalk: function (options) {
var postId = options.currentTarget.dataset.postid;
wx.navigateTo({
url: '/pages/talkingmore/talkingmore?id=' + postId
})
},
changeViewType: function(e) {
var data = e.currentTarget.dataset
this.setData({
show: data.type,
})
}
})

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "我的收藏"
}

@ -0,0 +1,43 @@
<view class="tab-header">
<view class="tab-header-item {{show == 'movie_favorite' ? 'tab-header-active' : ''}}" data-type="movie_favorite" bindtap="changeViewType">数学达人</view>
<view class="tab-header-item {{show == 'talk_favorite' ? 'tab-header-active' : ''}}" data-type="talk_favorite" bindtap="changeViewType">文章</view>
</view>
<view class="tab-content-item" hidden="{{show == 'movie_favorite' ? false : true}}">
<view class="movie-list">
<block class="movie-list-ul" wx:for="{{moviearray}}" wx:for-item="item" wx:key="*this">
<view class="movie-list-li" bindtap="jumpBtnMovie" data-postId='{{item.postId}}'>
<view class="item-top"><image src='{{item.img}}'></image></view>
<view class="item-bottom">
<view>{{item.title}}</view>
<text>{{item.score}}</text>
</view>
</view>
</block>
</view>
</view>
<view class="tab-content-item" hidden="{{show == 'talk_favorite' ? false : true}}">
<view>
<block wx:for="{{talkarray}}" wx:for-item="item" wx:key="*this">
<view catchtap='jumpBtnTalk' data-postId='{{item.postId}}'>
<view class='middle'>
<view class='author-date'>
<image class='author' src='{{item.avatar}}'></image>
<text class='date'>{{item.author}}</text>
<text class='date'>{{item.date}}</text>
</view>
<text class='title'>{{item.title}}</text>
<image class='post-image' src='{{item.imgSrc}}'></image>
<text class='content'>{{item.content}} </text>
<view class='like'>
<image class='like-image' src='/static/img/chat.png'></image>
<text class='like-font'>{{item.collection}}</text>
<image class='like-image' src='/static/img/view.png'></image>
<text class='like-font'>{{item.reading}}</text>
</view>
</view>
</view>
</block>
</view>
</view>

@ -0,0 +1,32 @@
@import '/pages/popular/popular.wxss';
@import '/pages/talking/talking.wxss';
.tab-header {
box-sizing: border-box;
position: fixed;
top: 0;
left: 0;
display: table;
width: 750rpx;
height: 80rpx;
background-color: #fff;
border-bottom: 1px solid #eee;
/* margin-bottom: 80prx; */
}
.tab-header-item {
display: table-cell;
height: 80rpx;
line-height: 80rpx;
text-align: center;
}
.tab-header-item:active {
background-color: #f8f8f8;
}
.tab-header-active {
border-bottom: 4rpx solid #47a86c;
}
.movie-list,.middle{
margin-top: 80rpx;
}

@ -0,0 +1,39 @@
// pages/favorite/favorite.js
var app = getApp()
Page({
data: {
moviearray:[],
talkarray:[],
show: 'movie_favorite',
},
onLoad: function (options) {
app.MovieHistoryRefresh()
app.TalkHistoryRefresh()
// console.log(app.globalData.moviearray)
this.setData({
moviearray: app.globalData.moviehistoryarray,
talkarray: app.globalData.talkhistoryarray
})
},
onPullDownRefresh: function () {
this.onLoad()
},
jumpBtnMovie:function(options){
var postId = options.currentTarget.dataset.postid;
wx.navigateTo({
url: '/pages/moviemore/moviemore?id='+postId,
})
},
jumpBtnTalk: function (options) {
var postId = options.currentTarget.dataset.postid;
wx.navigateTo({
url: '/pages/talkingmore/talkingmore?id=' + postId
})
},
changeViewType: function(e) {
var data = e.currentTarget.dataset
this.setData({
show: data.type,
})
}
})

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "历史记录"
}

@ -0,0 +1,43 @@
<view class="tab-header">
<view class="tab-header-item {{show == 'movie_favorite' ? 'tab-header-active' : ''}}" data-type="movie_favorite" bindtap="changeViewType">数学达人</view>
<view class="tab-header-item {{show == 'talk_favorite' ? 'tab-header-active' : ''}}" data-type="talk_favorite" bindtap="changeViewType">文章</view>
</view>
<view class="tab-content-item" hidden="{{show == 'movie_favorite' ? false : true}}">
<view class="movie-list">
<block class="movie-list-ul" wx:for="{{moviearray}}" wx:for-item="item" wx:key="*this">
<view class="movie-list-li" bindtap="jumpBtnMovie" data-postId='{{item.postId}}'>
<view class="item-top"><image src='{{item.img}}'></image></view>
<view class="item-bottom">
<view>{{item.title}}</view>
<text>{{item.score}}</text>
</view>
</view>
</block>
</view>
</view>
<view class="tab-content-item" hidden="{{show == 'talk_favorite' ? false : true}}">
<view>
<block wx:for="{{talkarray}}" wx:for-item="item" wx:key="*this">
<view catchtap='jumpBtnTalk' data-postId='{{item.postId}}'>
<view class='middle'>
<view class='author-date'>
<image class='author' src='{{item.avatar}}'></image>
<text class='date'>{{item.author}}</text>
<text class='date'>{{item.date}}</text>
</view>
<text class='title'>{{item.title}}</text>
<image class='post-image' src='{{item.imgSrc}}'></image>
<text class='content'>{{item.content}} </text>
<view class='like'>
<image class='like-image' src='/static/img/chat.png'></image>
<text class='like-font'>{{item.collection}}</text>
<image class='like-image' src='/static/img/view.png'></image>
<text class='like-font'>{{item.reading}}</text>
</view>
</view>
</view>
</block>
</view>
</view>

@ -0,0 +1,32 @@
@import '/pages/popular/popular.wxss';
@import '/pages/talking/talking.wxss';
.tab-header {
box-sizing: border-box;
position: fixed;
top: 0;
left: 0;
display: table;
width: 750rpx;
height: 80rpx;
background-color: #fff;
border-bottom: 1px solid #eee;
/* margin-bottom: 80prx; */
}
.tab-header-item {
display: table-cell;
height: 80rpx;
line-height: 80rpx;
text-align: center;
}
.tab-header-item:active {
background-color: #f8f8f8;
}
.tab-header-active {
border-bottom: 4rpx solid #47a86c;
}
.movie-list,.middle{
margin-top: 80rpx;
}

@ -0,0 +1,67 @@
Page({
data: {
list: [{
id: '1001',
title: '中国古代数学科普',
videoUrl: '/static/img/123.mp4'
},
{
id: '1002',
title: '中国古代数学科普',
videoUrl: '/static/img/123.mp4'
},
{
id: '1003',
title: '当中国古代数学科普',
videoUrl: '/static/img/123.mp4'
},
{
id: '1004',
title: '当中国古代数学科普',
videoUrl: '/static/img/123.mp4'
}
]
},
// 创建视频上下文
videoCtx: wx.createVideoContext('myVideo'),
playVideo: function(e) {
// 停止之前正在播放的视频
this.videoCtx.stop();
// 更新视频地址
this.setData({
src: e.currentTarget.dataset.url
});
// 播放新的视频
this.videoCtx.play();
},
getDanmu: function(e) {
this.setData({
danmuTxt: e.detail.value
});
},
/**
* 发送弹幕
*/
sendDanmu: function(e) {
let text = this.data.danmuTxt;
this.videoCtx.sendDanmu({
text: text,
color: this.getRandomColor() // 使用 this.getRandomColor() 调用函数
});
},
// 定义 getRandomColor 函数
getRandomColor: function() {
let rgb = [];
for (let i = 0; i < 3; i++) {
let color = Math.floor(Math.random() * 256).toString(16);
color = color.length == 1 ? '0' + color : color;
rgb.push(color);
}
return '#' + rgb.join('');
}
});

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,16 @@
<!--区域一:视频播放器-->
<video id='myVideo' controls autoplay src="{{src}}" enable-danmu-btn></video>
<!--区域2弹幕控制-->
<view class='danmuArea'>
<input type='text'placeholder='请输入弹幕内容'bindinput='getDanmu'></input>
<button bindtap='sendDanmu'>发送弹幕</button>
</view>
<!--区域3视频列表-->
<view class='videoList'>
<view class='videoBar'wx:for='{{list}}'wx:key='video{{index}}'data-url='{{item.videoUrl}}'bindtap='playVideo'>
<image src='/static/img/1234.png'></image>
<text>{{item.title}}</text>
</view>
</view>

@ -0,0 +1,49 @@
/* pages/ii/ii.wxss */
video{
width:100%; /*视频组件宽度为100%*/
}
.danmuArea {
display: flex; /*flex模型布局*/
flex-direction:row; /*水平方向排列*/
}
/*2-2文本输入框样式*/
input {
border:1rpx solid #08cfdd; /*1rpx宽的实线棕色边框*/
flex-grow:1; /*扩张多余空间宽度*/
height:90rpx; /*高度*/
}
/*2-3按钮样式*/
button {
color:rgb(233, 240, 239); /*字体颜色*/
background-color:#4f9986; /*背景颜色*/
}
.videoList {
width:100%; /*宽度*/
min-height:400rpx; /*最小高度*/
}
/*3-2单行列表区域样式*/
.videoBar {
width:95%; /*宽度*/
display: flex; /*flex模型布局*/
flex-direction:row; /*水平方向布局*/
border-bottom:1rpx solid #4f9986; /*1rpx宽的实线棕色边框*/
margin:10rpx; /*外边距*/
}
/*3-3播放图标样式*/
image {
width:70rpx; /*宽度*/
height:70rpx; /*高度*/
margin: 20rpx; /*外边距*/
}
/*3-4文本标题样式*/
text {
font-size:30rpx; /*字体大小*/
color: #4f9986; /*字体颜色为棕色*/
margin: 20rpx; /*外边距*/
flex-grow:1; /*扩张多余空间宽度*/
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

@ -0,0 +1,82 @@
// pages/moviemore/moviemore.js
var moviesInfo = require('../../data/movieInfo.js');
var app = getApp()
Page({
data: {
collected: false,
history:[]
},
onLoad: function (options) {
var postId = options.id;
this.data.currentPostId = postId;
var movieInfo = moviesInfo.postList[postId];
// console.log(postId)
this.setData({
movieInfo: movieInfo
})
// 收藏
var postsCollected = wx.getStorageSync("posts_collected");
console.log(postsCollected)
if (postsCollected) {
var postCollected = postsCollected[postId]
this.setData({
collected: postCollected
})
} else {
var postsCollected = {};
postsCollected[postId] = false;
wx.setStorageSync("posts_collected", postsCollected)
}
// 历史
var historyslist = wx.getStorageSync("historys_list");
if(!historyslist){
var history=this.data.history;
wx.setStorageSync('historys_list', history);
}
for(var i=0;i<historyslist.length;i++){
if(historyslist[i]==postId)
historyslist.splice(i,1);
}
historyslist.unshift(postId);
console.log("history:"+historyslist);
wx.setStorageSync('historys_list', historyslist);
},
onColletionTap: function (event) {
this.getPostsCollectedAsy();
},
getPostsCollectedAsy: function () {
var that = this;
wx.getStorage({
key: 'posts_collected',
success: function (res) {
var postsCollected = res.data;
var postCollected = postsCollected[that.data.currentPostId];
postCollected = !postCollected;
postsCollected[that.data.currentPostId] = postCollected;
that.showToast(postsCollected, postCollected)
},
})
},
showToast: function (postsCollected, postCollected) {
wx.setStorageSync('posts_collected', postsCollected);
this.setData({
collected: postCollected
})
wx.showToast({
title: postCollected ? '收藏成功' : '取消成功',
duration: 800,
icon: "success"
})
},
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,36 @@
<!--pages/moviemore/moviemore.wxml-->
<view class="top">
<view class="top-background" style="background-image: url({{movieInfo.img}})"></view>
<image src="{{movieInfo.img}}" class="top-background-cover"></image>
<view class="top-content">
<view class="top-title">{{movieInfo.title}}</view>
<view class="top-txt">作者:{{movieInfo.director}}</view>
<view class="top-txt">出版社:{{movieInfo.actor}}</view>
<view class="top-txt">内容评分:
<block wx:if="{{movieInfo.score == 0}}">
暂无评分
</block>
<block wx:else>{{movieInfo.score}}分</block>
</view>
<view class="top-txt">发行时间:{{movieInfo.year}}年</view>
</view>
<view class="top-favorite {{collected ? 'top-favorite-active' : ''}}" bindtap="onColletionTap">收藏</view>
</view>
<view class="middle">
<view class="middle-item">
<view class="middle-item-num">{{movieInfo.saw_count}}</view>
<view class="middle-item-title">看过</view>
</view>
<view class="middle-item">
<view class="middle-item-num">{{movieInfo.want_count}}</view>
<view class="middle-item-title">已收藏</view>
</view>
<view class="middle-item">
<view class="middle-item-num">{{movieInfo.ratings_count}}</view>
<view class="middle-item-title">浏览量</view>
</view>
</view>
<view class="bottom">
<view class="bottom-title">简介</view>
<view class="bottom-content">{{movieInfo.content}}</view>
</view>

@ -0,0 +1,140 @@
/* pages/moviemore/moviemore.wxss */
.top {
position: relative;
width: 100%;
height: 600rpx;
display: flex;
justify-content: center;
align-content: center;
overflow: hidden;
}
.top:before {
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
z-index: -1;
width: 100%;
height: 600rpx;
}
.top-background {
position: absolute;
z-index: -2;
left: 0;
top: 0;
width: 100%;
height: 600rpx;
background-size: cover;
background-position: center;
filter: blur(30rpx);
transform: scale(1.2);
}
.top-background-cover {
z-index: 9999;
width: 300rpx;
height: 420rpx;
margin-top: 80rpx;
border-radius: 8rpx;
box-shadow: 0 30rpx 150rpx rgba(255, 255, 255, .3)
}
.top-favorite {
box-sizing: border-box;
position: absolute;
z-index: 99;
bottom: 30rpx;
left: 120rpx;
width: 160rpx;
padding: 10rpx 30rpx;
padding-left: 60rpx;
font-size: 32rpx;
line-height: 1;
border-radius: 30rpx;
border: 1px solid #fff;
background-position: 20rpx center;
background-repeat: no-repeat;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC7klEQVRoQ9WagXHUMBBF91dAUgFQAVABXAWQCoAKCBUQKiBXAVwFIRWQVEBSAVwFHBUs849VJtzZ1kpac7ZmPHMzZ0n/SdZfeWXICEVVj0Tkk4i8EZGNiHwVkfcA+Du0ILQ1a0xVv4vI0522rwAsovsLB1BVjvrnHqFvAXyJhBgD4IeIPOoReQPg2WQBMqOfdC8AXEVBhM6Aqn4TkRcZcaFrIQxAVSmcAJ4SNguRAJ7RT3ArAFzszSUEQFVpmbTOkvIYwM+SCl33RgHQGl8XigmZhWYAVaVl0jprynFrdI4AqBn9BPsRwFkNearTBGB7nl8NArg34lqo3iNVAZjwJyLySkROGwBY9ZybPQDXNe0MApi7PLDgxGedFx2Hu80xCmfixi7+ZsReD7nVHYCqvjRxDEgUuLubHENwSZsEo+1uAQFcsjLscWAQmprgHBxBFgRocZFcJ2P/vyIAXWSsZ3psgA0BuFi4UOdY1gSgjb2bo3oRWaZFTLuir8+p3NLetzZqTjQniL/igc39OMCFPAeINS0/bT/+icQWeQkx1UX920aeMWBb9rYSE4bYE98JYGuCUXlKM9EpvhdgYhC94gcBJgIxKD4LcGCIrHgXwD2I0qxDS1B0iXcDGIS2KCqtC8D1tui6qTLvU6p5935X3sgLUJI2bBWe6rvSj14Apj4+RClztuNKuXgBDvHW5srceQEYlZ87Ry7qtmsAuVT9/l6oq3dV/a8OZBo2AI5zo5GdgcbcZ67/3P/Z3KkH4BAO5HYiD8AhHCgB8GyZ7+y9xQPQ4kDcErDUviAtAQzmXj0ANQ5E4Ry5NHoUwasUJOtEHoDSxNdSRM52U+aWOCBQyUlO1ok8AF4LXZnwwXMvczWuKxdIblPnAaCghwPriHn9UwB3L9o5b7TdLd2NIEMBkqn1vlP/bTceAB5iXHSIonA+Kk2n7na+zEerK7F2AoBfutS7kI0WITha7IRJpfPojzbsMwUu9NQHB2dQPLX9AbQjJU2PHjqcAAAAAElFTkSuQmCC);
background-size: 32rpx;
color: #fff;
transition: left .3s, color .3s, background-image .3s;
}
.top-favorite-active {
left: 100rpx;
width: 190rpx;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADk0lEQVRoQ9Wa0VLaQBSGzwmNU00YZUbjZfFO6IX0CYpPUPsEtU9QfIKmT1B8guoT1D6B+ATFiwJ3wqWpM9ABsVNrTuckwakI2U2yKWkuyWbP/+1m/z17AkIKF/WLa9e3Kx8BYJ8ABghwYujjAyx0B6rDoeoOub+RU/4KAJWHfVPDtNq7quMpBxg52/sA2qfZQt23ptU5UgmhHuCydAGIxTkim6bVepFZgPDR92UTurv5jU5DFYTSGRg5pVMArIaLU7sWlAEMv29XkbRTmZFVOQvKAORGf4JHx6bV3peBFbVRAjBynlcAiK1T+srp7tZyodOVfmBOQ0UApSMAfBNNjJpZSAxw098u3t1qF9HE+60NfVxIujsnBhg5cUY/sFSCD/nNlh0HfvJMIoAg5+nHFcB5kqmPt5LMQiwAFv7z99OdO8I9AKzFBQjmoZ5DOlne6JzF6ScUgN0lh3erLmhVIigCUJEAKwiwFieY6Bk/c6UmADQRcaCB24An0Atzq3uA66vyKyCoEFEVAFngVDYpCp/6/SYRdTUNm4DQNNZbXzgiBu8x76BZEywakaahj3cxiYuIIqR/n45x6JT7ab3TaQN4a2bolAYIuJp2sFT6J+rxK1QHwHepBEi9UzqcLGI+YOykHk9tgHNDH1c9Gw2c6H+C8MUXulzxCPZDvxSSfQiinrF0U5mkHw92Yt55CdxGVhc1Af1A0Kqm9Y13a+96lEpkFWKW+JkA/GPWIOaJnwuQJYgw8aEAWYAQiRcCLBJCRrwUwAQiatUhyZ4lK14awIcoUxJRUZ81rZbUaVGqUZy6T1TB0+1l60ZSAFHKhkmF32cGkkVgOYDLso0I71WJk+mHJEsuUgCLObXJVe6kAIZOifOjlzIjp6oNAZ3lrbagVD8jF5ol4F87EGvg42LeahVEAyKcgSS1T1Fw0X2Z2qkQYBEOFMWJxAALcKD7mUE6MDfa9bCZEgIkcSBOCfztPm7Vgw5Nqx1aexUCxHEgTzhh3Vwae6M3+rVSA6RaVBAZJ5IAiFr4okNDv7GnS+Z+4WCZSzjSX3JknEgIIG+hdJzTyRZ99/JdDW1ZEFFSJwa4LHUB8dm8hcTTjKDV/j5oi+yR77O7AaEdukES9czN9ryv/l4YIcD1VWmPXPw8LYqFA5Kd9Kt7YNO8Vh4V1lCj18Z6+ySRC/HDAQR/y+Ig5wBuXfWfNoK/KbDjeDFQI1sknrX9Ae1as5bu7R6bAAAAAElFTkSuQmCC);
color: #f4ea2a;
border: 1px solid #f4ea2a;
}
.top-favorite-active::before {
content: '已'
}
.top-content {
z-index: 2;
width: 320rpx;
margin-top: 80rpx;
margin-left: 40rpx;
color: #fff;
}
.top-title {
margin-bottom: 30rpx;
font-size: 42rpx;
}
.top-txt {
margin-bottom: 18rpx;
color: #eee;
}
/* 华丽的分割线 */
.middle {
display: flex;
height: 150rpx;
justify-content: space-around;
align-items: center;
border-bottom: 1px solid #f4f4f4;
}
.middle-item {
width: 33.33%;
text-align: center;
border-left: 1px solid #eee;
}
.middle-item:first-child {
border-left: none;
}
.middle-item-num {
font-size: 40rpx;
font-weight: 100;
color: #444;
}
.middle-item-title {
color: #999;
}
/* 华丽的分割线 */
.bottom {
padding: 0 40rpx 40rpx;
}
.bottom-title {
padding-left: 20rpx;
margin-top: 40rpx;
margin-bottom: 20rpx;
font-size: 32rpx;
font-weight: bold;
color: #444;
border-left: 10rpx solid #47a86c;
}
.bottom-content {
text-align: justify;
line-height: 1.5;
color: #666;
}

@ -0,0 +1,85 @@
const app = getApp()
Page({
data:{
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
gridList: [
{enName:'favorite', zhName:'收藏'},
{enName:'history', zhName:'浏览记录'},
{enName:'photo', zhName:'相册'},
],
skin: ''
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else if (this.data.canIUse){
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
wx.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
}
},
getUserInfo: function(e) {
console.log(e)
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
},
onShow:function(){
var that = this
wx.getStorage({
key: 'skin',
success: function(res){
if (res.data == "") {
that.setData({
skin: config.skinList[0].imgUrl
})
} else {
that.setData({
skin: res.data
})
}
}
})
},
onPullDownRefresh: function() {
this.onLoad(function(){
wx.stopPullDownRefresh()
})
},
viewGridDetail: function(e) {
var data = e.currentTarget.dataset
wx.navigateTo({
url: "../" + data.url + '/' + data.url
})
},
viewSkin: function() {
wx.navigateTo({
url: "/pages/skin/skin"
})
}
})

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "我的"
}

@ -0,0 +1,18 @@
<view class="my">
<view class="userinfo" style="background-image: url({{skin}})">
<view class="user-skin" bindtap="viewSkin"></view>
<button class="userbutton" wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
<block wx:else>
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>
</view>
<view class="grids">
<block wx:for="{{gridList}}" wx:for-item="gridItem" wx:for-index="gridIndex" wx:key="grid">
<view class="grid" bindtap="viewGridDetail" data-url="{{gridItem.enName}}">
<view class="grid-icon grid-icon-{{gridItem.enName}}"></view>
<view class="grid-title">{{gridItem.zhName}}</view>
</view>
</block>
</view>
</view>

@ -0,0 +1,119 @@
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 200px;
background-size: 120%;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.user-skin {
position: absolute;
top: 20rpx;
right: 20rpx;
width: 60rpx;
height: 60rpx;
border: 4rpx solid #fff;
border-radius: 60rpx;
background-color: rgba(0, 0, 0, .3);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACHElEQVRoQ+2YfVXDMBTF71MADgAFMAdMAThgUwA42BwMB5sCQAE4YCgAHODgce5Idto0adJ26ygn+bMnee/+3lfTCga+ZOD6kQEOncGcgZyBjhHoVEKqegHgyGj4EpHPFD2qegrgpOk5n+1GAKp6DOAKwATApWNwLSKjRIA3AIQvricASxF5TrFh9yQDqOotgBkAQoTWWERe6wSoKsFfavasAdzH7CQDmKg/eiLu0/ANYBQqJVM6jH5dEKzdmYjMY9mozYCpcUYrxaH1RQg6fyg6T8ygq5dlNRUR2vSuIEBL8a4T29Rs2raLJcXS9EJ4AXYkvq1g37nggKgAmJpn2bhTYpeC2tjihJq6B30AbNjrNh56OMPptCj6KQGoKoUT4C8vTjn2xWZtAUzpfDScOIcA5WAgxKapiwBLADeHUNTC51xE+FL9BTAvGEZ/SOuML0wLwBcVrwDnAyF4582AZeT2wBAgtuJLPWBKKSUTNLCvTMVsl8RXABIgVrzyRm6TXapwbK7qvmFSEe8FqIFYicgk4TrcCYDXaFV1J6JXfBDAA7ERb57H7vOdAYwfCxEUXwtQgLizM7dPAOOLs37R6jodCmMfJdQkhcmflNZoBqgPb/Sb2j2eM9CkXhP25gxEg5SbODdxOQJ5CkWbptmGPIWi8foPU4hfbfv6a8dfiMEfub7oNm7iaIp63pABeg54xV3OQM5AxwgMvoR+AMyi8zFvBJhOAAAAAElFTkSuQmCC);
background-position: center;
background-repeat: no-repeat;
background-size: 40rpx;
}
.grids {
position: relative;
width: 100%;
display: flex;
flex-wrap: wrap;
}
.grids::before, .grid::before, .grids::after, .grid::after {
content: '';
display: block;
position: absolute;
z-index: 99;
background-color: #ccc;
}
.grids::before, .grid::before {
left: 0;
width: 100%;
height: 1px;
transform: scaleY(0.5);
}
.grids::before {
top: 0;
}
.grid::before {
bottom: 0;
}
.grids::after, .grid::after {
top: 0;
height: 100%;
width: 1px;
transform: scaleX(0.5);
}
.grids::after {
left: 0;
}
.grid::after {
right: 0;
}
.grid {
box-sizing: border-box;
position: relative;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-around;
width: 250rpx;
height: 250rpx;
padding: 20rpx;
text-align: center;
}
.grid:active {
background-color: #fafafa;
}
.grid-icon {
width: 80rpx;
height: 80rpx;
margin-top: 20rpx;
margin-bottom: 10rpx;
background-position: center;
background-repeat: no-repeat;
background-size: contain;
}
.grid-icon-favorite {
background-image: url(data:image/png;base64,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);
}
.grid-icon-history {
background-image: url(data:image/png;base64,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);
}
.grid-icon-photo {
background-image: url(data:image/png;base64,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);
}
.grid-title {
width: 100%;
color: #666;
}

@ -0,0 +1,55 @@
Page({
data:{
pictures: [],
nullTip: {
tipText: '亲,没有上传照片哦',
actionText: '上传',
fn: 'uploadImg'
}
},
onLoad:function(options){
var that = this
wx.getStorage({
key: 'gallery',
success: function(res){
that.setData({
pictures: res.data,
})
console.log(res.data)
}
})
},
uploadImg: function() {
var that = this
wx.chooseImage({
count: 1,
success: function(res) {
var tempFilePath = res.tempFilePaths[0]
wx.saveFile({
tempFilePath: tempFilePath,
success: function(res) {
var savedFilePath = res.savedFilePath
console.log(savedFilePath)
that.setData({
pictures: that.data.pictures.concat(savedFilePath)
})
wx.setStorage({
key: 'gallery',
data: that.data.pictures
})
}
})
}
})
},
previewImage: function(e) {
var data = e.currentTarget.dataset
var index = data.index
var that = this
wx.previewImage({
current: that.data.pictures[index], // 当前显示图片的链接,不填则默认为 urls 的第一张
urls: that.data.pictures
})
}
})

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "相册",
"enablePullDownRefresh": false
}

@ -0,0 +1,19 @@
<block wx:if="{{pictures.length == 0}}">
<view class="null-tip">{{nullTip.tipText}}</view>
<block wx:if="{{nullTip.routeUrl == undefined}}">
<view bindtap="{{nullTip.fn}}" class="null-action">{{nullTip.actionText}}</view>
</block>
<block wx:else>
<navigator url="{{nullTip.routeUrl}}" class="null-action">{{nullTip.actionText}}</navigator>
</block>
</block>
<block wx:else>
<view class="photo">
<block wx:for="{{pictures}}" wx:for-item="picturesItem" wx:for-index="picturesIndex" wx:key="pictures">
<view class="photo-item">
<image class="photo-item-cover" src="{{picturesItem}}" mode="aspectFill" data-index="{{picturesIndex}}" bindtap="previewImage"></image>
</view>
</block>
</view>
<view bindtap="uploadImg" class="null-action">上传</view>
</block>

@ -0,0 +1,75 @@
.photo {
display: flex;
flex-wrap: wrap;
margin-bottom: 60rpx;
position: relative;
}
.photo::before, .photo::after, .photo-item::before, .photo-item::after {
content: '';
display: block;
position: absolute;
background-color: #e5e5e5;
}
.photo::before, .photo::after {
top: 0;
left: 0;
}
.photo::before, .photo::after {
bottom: 0;
right: 0;
}
.photo::before, .photo-item::before {
width: 100%;
height: 1px;
transform: scaleY(0.5);
}
.photo::after, .photo-item::after {
width: 1px;
height: 100%;
transform: scaleX(0.5);
}
.photo-item {
width: 250rpx;
height: 250rpx;
overflow: hidden;
position: relative;
}
.photo-item-cover {
width: 100%;
height: 100%;
}
.null-tip {
height: 400rpx;
margin: 120rpx 0;
background-image: url(data:image/png;base64,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);
background-repeat: no-repeat;
background-position: center;
background-size: 140rpx 112rpx;
line-height: 800rpx;
text-align: center;
color: #999;
}
.null-action {
margin: 0 auto;
width: 200rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
border-radius: 8rpx;
border: 1px solid #47a86c;
color: #47a86c;
}
.null-action:active {
background-color: #47a86c;
color: #fff;
}

@ -0,0 +1,24 @@
// pages/xwdt/xwdt.js
var moviesInfo = require('../../data/movieInfo.js');
Page({
data: {
},
onLoad: function (options) {
this.setData({
posts_key: moviesInfo.postList
})
},
jumpBtn:function(options){
// console.log(options)
var postId = options.currentTarget.dataset.postid;
wx.navigateTo({
url: '/pages/moviemore/moviemore?id='+postId,
})
},
onSwiperTap: function (event) {
var postId = event.target.dataset.postid;
wx.navigateTo({
url: "/pages/moviemore/moviemore?id=" + postId
})
},
})

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "中国古代数学"
}

@ -0,0 +1,26 @@
<view >
<swiper id="gun" catchtap='onSwiperTap' vertical='{{false}}' indicator-dots='true' indicator-active-color='#fff' autoplay='true' interval='5000' circular>
<swiper-item>
<image class='roll_img' src='/static/img/111111.jpg' data-postId='0'></image>
</swiper-item>
<swiper-item>
<image class='roll_img' src="/static/img/22222.jpg" data-postId='1'></image>
</swiper-item>
<swiper-item>
<image class='roll_img' src="/static/img/33333.jpg" data-postId='2'></image>
</swiper-item>
</swiper>
</view>
<view class="movie-list">
<block class="movie-list-ul" wx:for="{{posts_key}}" wx:for-item="item" wx:key="*this">
<view class="movie-list-li" bindtap="jumpBtn" data-postId='{{item.postId}}'>
<view class="item-top">
<image src='{{item.img}}'></image>
</view>
<view class="item-bottom">
<view>{{item.title}}</view>
<text>{{item.score}}</text>
</view>
</view>
</block>
</view>

@ -0,0 +1,44 @@
#gun{
height: 400rpx;
}
.roll_img{
width: 100%;
height: 100%;
}
.movie-list{
box-sizing: border-box;
width: 750rpx;
padding: 10rpx 15rpx;
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-between;
box-shadow: 0 0 40rpx #f4f4f4 inset;
}
.movie-list-li {
width: 350rpx;
height: 540rpx;
margin-bottom: 20rpx;
border-radius: 10rpx;
background-color: #fff;
border: 1px solid #e4e4e4;
box-shadow: 0 20rpx 40rpx #eee;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
}
.item-top image{
width: 350rpx;
}
.item-bottom{
width: 300rpx;
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
}
.item-bottom text{
color: #e09015;
}

@ -0,0 +1,39 @@
var config = require('../../data/skinList.js');
Page({
data:{
skinList: config.postList,
nowSkin: ''
},
onLoad:function(options){
var that = this
wx.getStorage({
key: 'skin',
success: function(res){
if (res.data == "") {
that.setData({
nowSkin: config.skinList[0].imgUrl
})
} else {
that.setData({
nowSkin: res.data
})
}
}
})
},
chooseSkin: function(e) {
var url = e.currentTarget.dataset.url
wx.setStorage({
key: 'skin',
data: url,
success: function(res){
wx.navigateBack({
delta: 1,
success: function(res){
console.log('success')
}
})
}
})
}
})

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "背景卡"
}

@ -0,0 +1,8 @@
<view class="skin-list">
<block wx:for="{{skinList}}" wx:for-item="skinItem" wx:for-index="skinIndex" wx:key="skin">
<view class="skin-item {{nowSkin == skinItem.imgUrl ? 'skin-item-active' : ''}}" data-url="{{skinItem.imgUrl}}" bindtap="chooseSkin">
<image src="{{skinItem.imgUrl}}" class="skin-img"></image>
<view class="skin-title">{{skinItem.title}}</view>
</view>
</block>
</view>

@ -0,0 +1,60 @@
.skin-list {
overflow: hidden;
}
.skin-item, .skin-img {
width: 710rpx;
height: 360rpx;
}
.skin-item {
box-sizing: border-box;
position: relative;
margin: 20rpx auto;
border-radius: 20rpx;
box-shadow: 0 20rpx 20rpx rgba(0, 0, 0, .2);
overflow: hidden;
}
.skin-item-active {
border: 6rpx solid #47a86c;
}
.skin-item-active::before {
content: '';
display: block;
position: absolute;
top: -80rpx;
right: -80rpx;
z-index: 4;
width: 160rpx;
height: 160rpx;
transform: rotate(45deg);
background-color: #47a86c;
}
.skin-item-active::after {
content: '在用';
display: block;
position: absolute;
top: 5px;
right: 3px;
z-index: 4;
text-align: center;
transform: rotate(45deg);
color: #fff;
}
.skin-title {
box-sizing: border-box;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 80rpx;
font-size: 32rpx;
line-height: 80rpx;
padding: 0 40rpx;
background-color: rgba(0, 0, 0, .6);
border-radius: 0 0 20rpx 20rpx;
color: #fff;
}

@ -0,0 +1,20 @@
var talksInfo = require('../../data/talkInfo.js');
Page({
onLoad: function (options) {
// this.data.posts_key = postsData.postList
this.setData({
posts_key: talksInfo.postList
})
},
jumpBtn: function (options) {
var postId = options.currentTarget.dataset.postid;
wx.navigateTo({
url: '/pages/talkingmore/talkingmore?id=' + postId
})
},
})

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "热门资讯"
}

@ -0,0 +1,22 @@
<view>
<block wx:for="{{posts_key}}" wx:for-item="item" wx:key="*this">
<view catchtap='jumpBtn' data-postId='{{item.postId}}'>
<view class='middle'>
<view class='author-date'>
<image class='author' src='{{item.avatar}}'></image>
<text class='date'>{{item.author}}</text>
<text class='date'>{{item.date}}</text>
</view>
<text class='title'>{{item.title}}</text>
<image class='post-image' src='{{item.imgSrc}}'></image>
<text class='content'>{{item.content}} </text>
<view class='like'>
<image class='like-image' src='/static/img/chat.png'></image>
<text class='like-font'>{{item.collection}}</text>
<image class='like-image' src='/static/img/view.png'></image>
<text class='like-font'>{{item.reading}}</text>
</view>
</view>
</view>
</block>
</view>

@ -0,0 +1,68 @@
.middle {
display: flex;
flex-direction: column;
margin-top: 20rpx;
margin-bottom: 40rpx;
background-color: #fff;
border-bottom: 1px solid #ededed;
border-top: 1px solid #ededed;
padding-bottom: 20rpx;
}
.author-date {
margin: 10rpx 0 20rpx 10rpx;
}
.author {
width: 60rpx;
height: 60rpx;
vertical-align: middle; /*垂直居中*/
}
.date {
margin-left: 20rpx;
vertical-align: middle;
font-size: 26rpx;
}
.title {
font-size: 34rpx;
font-weight: 600;
color: #333;
margin-bottom: 10rpx;
margin-left: 20rpx;
}
.post-image {
width: 100%;
height: 340rpx;
margin-bottom: 15rpx;
}
.content {
color: #666;
font-size: 28rpx;
margin-bottom: 20rpx;
margin-left: 20rpx;
letter-spacing: 2rpx; /*文本间距*/
line-height: 40rpx; /*文本行高*/
}
.like{
font-size: 26rpx;
flex-direction: row;
line-height: 16rpx;
margin-left: 20rpx;
}
.like-image{
height: 16px;
width: 16px;
margin-right: 8px;
vertical-align: middle;
}
.like-font{
vertical-align: middle;
margin-right: 20rpx;
}

@ -0,0 +1,75 @@
// pages/talkingmore/talkingmore.js
var talksInfo = require('../../data/talkInfo.js');
Page({
data: {
collected: false,
history:[]
},
onLoad: function (options) {
var postId = options.id;
this.data.currentPostId = postId;
var talkInfo= talksInfo.postList[postId];
this.setData({
talkInfo: talkInfo
})
var postsCollected = wx.getStorageSync("posts_collected2");
if (postsCollected) {
var postCollected = postsCollected[postId]
this.setData({
collected: postCollected
})
} else {
var postsCollected = {};
postsCollected[postId] = false;
wx.setStorageSync("posts_collected2", postsCollected)
}
// 历史
var historyslist = wx.getStorageSync("historys_list2");
if(!historyslist){
var history=this.data.history;
wx.setStorageSync('historys_list2', history);
}
for(var i=0;i<historyslist.length;i++){
if(historyslist[i]==postId)
historyslist.splice(i,1);
}
historyslist.unshift(postId);
console.log("history:"+historyslist);
wx.setStorageSync('historys_list2', historyslist);
},
onColletionTap: function (event) {
this.getPostsCollectedAsy();
},
getPostsCollectedAsy: function () {
var that = this;
wx.getStorage({
key: 'posts_collected2',
success: function (res) {
var postsCollected = res.data;
var postCollected = postsCollected[that.data.currentPostId];
postCollected = !postCollected;
postsCollected[that.data.currentPostId] = postCollected;
that.showToast(postsCollected, postCollected)
},
})
},
showToast: function (postsCollected, postCollected) {
wx.setStorageSync('posts_collected2', postsCollected);
this.setData({
collected: postCollected
})
wx.showToast({
title: postCollected ? '收藏成功' : '取消成功',
duration: 800,
icon: "success"
})
},
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,22 @@
<!--pages/talkingmore/talkingmore.wxml-->
<view class='all'>
<image class='top' src='{{talkInfo.imgSrc}}'></image>
<view class='author-date'>
<image class='avatar' src='{{talkInfo.avatar}}'></image>
<text class='author'>{{talkInfo.author}}</text>
<text class='const-text'>发表于</text>
<text class='date'>{{talkInfo.date}}</text>
</view>
<text class='title'>{{talkInfo.title}}</text>
<view class='tool'>
<view class='circle-img'>
<image wx:if="{{collected}}" catchtap='onColletionTap' src='../images/collection.png'></image>
<image wx:else catchtap='onColletionTap' src='../images/collection-anti.png'></image>
<image catchtap='onShareTap' class='share-img' src='../images/share.png'></image>
</view>
</view>
<text class='detail'>{{talkInfo.detail}}</text>
</view>

@ -0,0 +1,81 @@
.all {
display: flex;
flex-direction: column;
}
.top {
width: 100%;
}
.author-date {
flex-direction: row;
margin-left: 30rpx;
margin-top: 20rpx;
}
.avatar {
height: 64rpx;
width: 64rpx;
vertical-align: middle; /*垂直居中*/
}
.author {
font-size: 30rpx;
font-weight: 300; /*字重即加粗*/
margin-left: 20rpx;
vertical-align: middle;
color: #666;
}
.const-text {
font-size: 24rpx;
color: #999;
margin-left: 20rpx;
}
.date {
font-size: 24rpx;
margin-left: 30rpx;
vertical-align: middle;
color: #999;
}
.title {
margin-left: 40rpx;
font-size: 36rpx;
font-weight: 700;
margin-top: 30rpx;
letter-spacing: 2px;
color: #4b556c;
}
/*------------线 加 分享收藏等------------ */
.tool {
margin-top: 20rpx;
}
.circle-img {
float: right; /*居右*/
margin-right: 40rpx;
vertical-align: middle;
}
.circle-img image{
width:90rpx;
height: 90rpx
}
.share-img{
margin-left: 30rpx;
}
.detail{
color:#666;
margin-left:40rpx;
margin-top:20rpx;
margin-right:30rpx;
line-height: 44rpx;
letter-spacing: 2rpx;
font-size: 24rpx;
}

@ -0,0 +1,49 @@
{
"description": "项目配置文件",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"urlCheck": true,
"es6": true,
"enhance": false,
"postcss": true,
"preloadBackgroundData": false,
"minified": true,
"newFeature": true,
"coverView": true,
"nodeModules": false,
"autoAudits": false,
"showShadowRootInWxmlPanel": true,
"scopeDataCheck": false,
"uglifyFileName": false,
"checkInvalidKey": true,
"checkSiteMap": true,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"useMultiFrameRuntime": false,
"useApiHook": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"useIsolateContext": true,
"useCompilerModule": true,
"userConfirmedUseCompilerModuleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": []
},
"compileType": "miniprogram",
"libVersion": "2.7.7",
"appid": "touristappid",
"projectname": "%E7%AC%AC2%E7%AB%A0%E6%BC%94%E7%A4%BA%E6%A1%88%E4%BE%8B",
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
}

@ -0,0 +1,10 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "202212840404陈帅屹",
"setting": {
"compileHotReLoad": true,
"urlCheck": false,
"preloadBackgroundData": false
},
"libVersion": "3.1.5"
}

@ -0,0 +1,7 @@
{
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
"rules": [{
"action": "allow",
"page": "*"
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Loading…
Cancel
Save