675 lines
14 KiB
JavaScript
675 lines
14 KiB
JavaScript
var WxParse = require('../../wxParse/wxParse.js');
|
|
const app = getApp();
|
|
var that;
|
|
var Interval;
|
|
var wechat;
|
|
var id;
|
|
|
|
Page({
|
|
|
|
|
|
startX: 0,
|
|
startY: 0,
|
|
isClear: false,
|
|
|
|
//-----------------------------
|
|
// 数据变量
|
|
//-----------------------------
|
|
data: {
|
|
showModalStatus: true,
|
|
pen: 3,
|
|
color: '#FFFFFF',
|
|
currentTab: 0,
|
|
now: 1,//当前页码
|
|
all: 10,//总页码
|
|
height: 0,
|
|
time: "",
|
|
all_time: 0,
|
|
Timer_state: 1,
|
|
Answer_card: false,
|
|
Draft_paper: false,
|
|
false_analysis:false,
|
|
stem_height: 150,
|
|
jiexi:false,
|
|
field:{
|
|
analysis_text:"",
|
|
},
|
|
img:[],
|
|
scroll:"scroll",
|
|
index:0,
|
|
drag_line:false,
|
|
},
|
|
|
|
|
|
//-----------------------------
|
|
// 当页面加载时
|
|
//-----------------------------
|
|
onLoad: function (options) {
|
|
|
|
//定义变量
|
|
that = this;
|
|
id = options.id == undefined ? 269 : options.id;
|
|
|
|
},
|
|
|
|
onShow:function(){
|
|
app.Check();
|
|
wechat = wx.getStorageSync("wechat");
|
|
that.Get_a_problem(id);
|
|
that.get_config();
|
|
},
|
|
|
|
|
|
//-----------------------------
|
|
// 获取系统信息
|
|
//-----------------------------
|
|
get_config:function(){
|
|
wx.getSystemInfo({
|
|
success: function (res) {
|
|
that.setData({
|
|
height: res.windowHeight,
|
|
})
|
|
}
|
|
});
|
|
that.setData({
|
|
option_box_height:Number(that.data.height)-Number(that.data.stem_height),
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 获取问题详情
|
|
//-----------------------------
|
|
Get_a_problem:function(){
|
|
wx.request({
|
|
url: app.data.Home+'/index/Get_a_problem',
|
|
data: {
|
|
id:id,
|
|
wechat_id:wechat.wechat_id,
|
|
},
|
|
success: function(res) {
|
|
|
|
var info = res.data;
|
|
console.log(info);
|
|
if (info.stem_text!=null){
|
|
WxParse.wxParse('stem_text', "html", info.stem_text, that,0);
|
|
}
|
|
WxParse.wxParse('problem_text', "html",info.problem_text, that,0);
|
|
|
|
that.setData({
|
|
info:info,
|
|
})
|
|
that.check_coll();
|
|
}
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 点赞
|
|
//-----------------------------
|
|
on_zan:function(e){
|
|
|
|
wx.showLoading({
|
|
mask: true,
|
|
})
|
|
|
|
var a = e.currentTarget.dataset.a;
|
|
var b = e.currentTarget.dataset.b;
|
|
var id = e.currentTarget.dataset.id;
|
|
|
|
wx.showLoading();
|
|
wx.request({
|
|
url: app.data.Home + '/index/analysis_on_zan',
|
|
data: {
|
|
id:id,
|
|
wechat_id:wechat.wechat_id,
|
|
},
|
|
success: function (rs) {
|
|
wx.hideLoading();
|
|
if (rs.data == "Success") {
|
|
var info = that.data.info;
|
|
info.problem_analysis[b].analysis_zan = Number(info.problem_analysis[b].analysis_zan) +1;
|
|
info.problem_analysis[b].analysis_zan_state = Number(1);
|
|
that.setData({
|
|
info: info,
|
|
})
|
|
}
|
|
wx.hideLoading()
|
|
}
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 点赞
|
|
//-----------------------------
|
|
off_zan: function (e) {
|
|
wx.showLoading({
|
|
mask: true,
|
|
})
|
|
var a = e.currentTarget.dataset.a;
|
|
var b = e.currentTarget.dataset.b;
|
|
var id = e.currentTarget.dataset.id;
|
|
wx.showLoading();
|
|
wx.request({
|
|
url: app.data.Home + '/index/analysis_off_zan',
|
|
data: {
|
|
id: id,
|
|
wechat_id: wechat.wechat_id,
|
|
},
|
|
success: function (rs) {
|
|
wx.hideLoading();
|
|
if (rs.data=="Success") {
|
|
var info = that.data.info;
|
|
info.problem_analysis[b].analysis_zan = Number(info.problem_analysis[b].analysis_zan) - 1;
|
|
info.problem_analysis[b].analysis_zan_state = Number(2);
|
|
that.setData({
|
|
info:info,
|
|
})
|
|
}
|
|
wx.hideLoading();
|
|
}
|
|
})
|
|
|
|
},
|
|
//---------------------------------
|
|
// 图片预览
|
|
//---------------------------------
|
|
Picture_preview: function (res) {
|
|
var src = res.currentTarget.dataset.src;
|
|
var urls = res.currentTarget.dataset.urls;
|
|
//图片预览
|
|
wx.previewImage({
|
|
current: src, // 当前显示图片的http链接
|
|
urls: urls // 需要预览的图片http链接列表
|
|
})
|
|
},
|
|
|
|
|
|
|
|
//-----------------------------
|
|
// 上一个
|
|
//-----------------------------
|
|
prev: function (e) {
|
|
that.guodu();
|
|
var index = that.data.index-1;
|
|
if (index < 0) {
|
|
return false;
|
|
}
|
|
this.setData({
|
|
index:index,
|
|
now:index+1,
|
|
});
|
|
if(that.data.false_analysis == false){
|
|
that.Get_a_problem(that.data.list[index].problem_id);
|
|
}else{
|
|
that.Get_a_problem(that.data.score_wrong_problem[index]);
|
|
}
|
|
},
|
|
//-----------------------
|
|
// 下一个
|
|
//-----------------------
|
|
next: function (e) {
|
|
|
|
that.guodu();
|
|
|
|
var index = that.data.index+1;
|
|
if (index == (that.data.all) ) {
|
|
return false;
|
|
}
|
|
this.setData({
|
|
index:index,
|
|
now:index+1,
|
|
});
|
|
if(that.data.false_analysis == false){
|
|
that.Get_a_problem(that.data.list[index].problem_id);
|
|
}else{
|
|
that.Get_a_problem(that.data.score_wrong_problem[index]);
|
|
}
|
|
},
|
|
//-----------------------
|
|
// 点击数字跳转页面
|
|
//-----------------------
|
|
Continue:function(e){
|
|
that.guodu();
|
|
var index = e.currentTarget.dataset.index;
|
|
this.setData({
|
|
index:index,
|
|
now:index+1,
|
|
});
|
|
if(that.data.false_analysis == true){
|
|
var all = that.data.list.length;
|
|
that.setData({
|
|
false_analysis: false,
|
|
all: all,
|
|
})
|
|
}
|
|
that.change_answer_card();
|
|
that.Get_a_problem(that.data.list[index].problem_id);
|
|
},
|
|
//-----------------------
|
|
// 点击进入下一题
|
|
//-----------------------
|
|
click: function (res) {
|
|
that.guodu();
|
|
var eq = res.currentTarget.dataset.index;
|
|
var option = res.currentTarget.dataset.select;
|
|
var my_answer = that.data.my_answer;
|
|
my_answer[eq] = option;
|
|
var index = that.data.index+1;
|
|
if (index == (that.data.all) ) {
|
|
that.setData({
|
|
my_answer:my_answer,
|
|
})
|
|
that.change_answer_card();
|
|
return false;
|
|
}
|
|
this.setData({
|
|
index:index,
|
|
now:index+1,
|
|
my_answer:my_answer,
|
|
});
|
|
if(that.data.false_analysis == false){
|
|
that.Get_a_problem(that.data.list[index].problem_id);
|
|
}else{
|
|
that.Get_a_problem(that.data.score_wrong_problem[index]);
|
|
}
|
|
},
|
|
//-----------------------------
|
|
// 究极的过度效果
|
|
//-----------------------------
|
|
guodu:function(){
|
|
var animation = wx.createAnimation({
|
|
timingFunction: "linear",
|
|
delay: 0,
|
|
});
|
|
this.animation = animation;
|
|
animation.opacity(0).translateY(-50).scale(0).step(150);
|
|
this.setData({
|
|
animationData: animation.export()
|
|
})
|
|
setTimeout(function () {
|
|
animation.opacity(1).translateY(0).scale(1).step(100);
|
|
this.setData({
|
|
animationData: animation
|
|
})
|
|
}.bind(this),150);
|
|
},
|
|
//-----------------------------
|
|
// 查看全部解析
|
|
//-----------------------------
|
|
all_analysis: function (res) {
|
|
that.Get_a_problem(that.data.list[0].problem_id);
|
|
that.change_answer_card();
|
|
var all = that.data.list.length;
|
|
that.setData({
|
|
false_analysis: false,
|
|
now: 1,
|
|
index:0,
|
|
all: all,
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 查看错误解析
|
|
//-----------------------------
|
|
false_analysis:function(e){
|
|
that.Get_a_problem(that.data.score_wrong_problem[0]);
|
|
var all = that.data.score_wrong_problem.length;
|
|
that.setData({
|
|
false_analysis: true,
|
|
now:1,
|
|
index:0,
|
|
all: all,
|
|
})
|
|
that.change_answer_card();
|
|
},
|
|
//-----------------------------
|
|
// 切换答题卡状态 开启 关闭
|
|
//-----------------------------
|
|
change_answer_card: function () {
|
|
var card = that.data.Answer_card;
|
|
if (card == true) {
|
|
that.setData({
|
|
Answer_card: false,
|
|
})
|
|
} else {
|
|
that.setData({
|
|
Answer_card: true,
|
|
})
|
|
}
|
|
},
|
|
//-----------------------------
|
|
// 草稿纸
|
|
//-----------------------------
|
|
shows: function () {
|
|
console.log(that.data.Draft_paper);
|
|
if (that.data.Draft_paper == false) {
|
|
that.setData({
|
|
Draft_paper: true,
|
|
})
|
|
this.util('open');
|
|
} else {
|
|
that.setData({
|
|
Draft_paper: false,
|
|
showModalStatus: false
|
|
})
|
|
}
|
|
},
|
|
util: function (currentStatu) {
|
|
var animation = wx.createAnimation({
|
|
duration: 200,
|
|
timingFunction: "linear",
|
|
delay: 0,
|
|
});
|
|
this.animation = animation;
|
|
animation.opacity(0).rotateX(-100).step();
|
|
this.setData({
|
|
animationData: animation.export()
|
|
})
|
|
setTimeout(function () {
|
|
animation.opacity(1).rotateX(0).step();
|
|
this.setData({
|
|
animationData: animation
|
|
})
|
|
if (currentStatu == "close") {
|
|
this.setData({ showModalStatus: false });
|
|
}
|
|
}.bind(this), 200)
|
|
// 显示
|
|
if (currentStatu == "open") {
|
|
this.setData({
|
|
showModalStatus: true
|
|
});
|
|
}
|
|
},
|
|
//-----------------------------
|
|
// 手机触摸开始
|
|
//-----------------------------
|
|
touchStart: function (e) {
|
|
//得到触摸点的坐标
|
|
this.startX = e.changedTouches[0].x
|
|
this.startY = e.changedTouches[0].y
|
|
this.context = wx.createContext()
|
|
this.context.setStrokeStyle(this.data.color)
|
|
this.context.setLineWidth(this.data.pen)
|
|
this.context.setLineCap('round') // 让线条圆润
|
|
this.context.beginPath()
|
|
|
|
},
|
|
//-----------------------------
|
|
// 触摸后移动
|
|
//-----------------------------
|
|
touchMove: function (e) {
|
|
|
|
var startX1 = e.changedTouches[0].x
|
|
var startY1 = e.changedTouches[0].y
|
|
this.context.moveTo(this.startX, this.startY)
|
|
this.context.lineTo(startX1, startY1)
|
|
this.context.stroke()
|
|
this.startX = startX1;
|
|
this.startY = startY1;
|
|
wx.drawCanvas({
|
|
canvasId: 'myCanvas',
|
|
reserve: true,
|
|
actions: this.context.getActions()
|
|
})
|
|
},
|
|
penSelect: function (e) {
|
|
this.setData({ pen: parseInt(e.currentTarget.dataset.param) });
|
|
this.isClear = false;
|
|
},
|
|
colorSelect: function (e) {
|
|
this.setData({ color: e.currentTarget.dataset.param });
|
|
this.isClear = false;
|
|
},
|
|
cleardraw: function (e) {
|
|
this.setData({
|
|
showModalStatus: false
|
|
});
|
|
this.setData({
|
|
showModalStatus: true
|
|
});
|
|
},
|
|
//-----------------------------
|
|
// 我要解析 显示隐藏
|
|
//-----------------------------
|
|
I_want_to_parse:function(e){
|
|
var jiexi = that.data.jiexi;
|
|
if (jiexi == false){
|
|
that.setData({
|
|
jiexi:true,
|
|
problem_id: that.data.info.problem_id,
|
|
})
|
|
}else{
|
|
that.setData({
|
|
jiexi:false,
|
|
problem_id:"",
|
|
})
|
|
}
|
|
},
|
|
//-----------------------------
|
|
// 打字
|
|
//-----------------------------
|
|
dazi:function(e){
|
|
|
|
var value = e.detail.value;
|
|
var name = e.currentTarget.dataset.name;
|
|
that.data.field[name] = value;
|
|
|
|
that.setData({
|
|
field:that.data.field
|
|
});
|
|
},
|
|
//--------------------------
|
|
// 上传
|
|
//--------------------------
|
|
upload: function () {
|
|
wx.showLoading({
|
|
mask:true,
|
|
})
|
|
wx.chooseImage({
|
|
count: 1, // 默认9
|
|
sizeType: ['original', 'compressed'],
|
|
sourceType: ['album', 'camera'],
|
|
success: function (res) {
|
|
var tempFilePaths = res.tempFilePaths
|
|
wx.uploadFile({
|
|
url: getApp().data.Home + "/Comment/upload",
|
|
filePath: tempFilePaths[0],
|
|
name: 'file',
|
|
header: { 'content-type': 'multipart/form-data' },
|
|
success: function (res) {
|
|
wx.hideLoading();
|
|
var len = that.data.img.length;
|
|
if (len >= 3) {
|
|
wx.showModal({
|
|
title: app.data.error_title,
|
|
content: '都说了不要超过三张了',
|
|
showCancel: false,
|
|
})
|
|
return false;
|
|
}
|
|
if (len == 0) {
|
|
that.data.img[0] = res.data;
|
|
that.setData({
|
|
img: that.data.img
|
|
})
|
|
} else {
|
|
that.data.img[len] = res.data;
|
|
that.setData({
|
|
img: that.data.img
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 提交解析
|
|
//-----------------------------
|
|
submit:function(e){
|
|
wx.showLoading({
|
|
mask:true,
|
|
})
|
|
wx.request({
|
|
url: app.data.Home + '/index/submit_analysis',
|
|
data: {
|
|
analysis_author: wechat.wechat_id,
|
|
analysis_problem: that.data.problem_id,
|
|
analysis_text: that.data.field.analysis_text == undefined ? "" : that.data.field.analysis_text,
|
|
analysis_img: that.data.img == undefined ? "" : that.data.img,
|
|
},
|
|
method:"post",
|
|
success: function (rs) {
|
|
wx.hideLoading();
|
|
if(rs.data == 'Success'){
|
|
that.Get_a_problem(id);
|
|
wx.showModal({
|
|
content: '提交成功',
|
|
showCancel: false,
|
|
success: function (res) {
|
|
that.Get_a_problem();
|
|
that.setData({
|
|
jiexi: false,
|
|
field: {
|
|
analysis_text: "",
|
|
},
|
|
img: [],
|
|
problem_id:"",
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 判断收藏
|
|
//-----------------------------
|
|
check_coll:function(){
|
|
var id = that.data.info.problem_id;
|
|
wx.request({
|
|
url: app.data.Home + '/index/check_coll',
|
|
data: {
|
|
wechat_id:wechat.wechat_id,
|
|
id:id,
|
|
},
|
|
success: function (rs) {
|
|
if(rs.data == "Success"){
|
|
that.setData({
|
|
check_coll:true,
|
|
})
|
|
}else{
|
|
that.setData({
|
|
check_coll:false,
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 是否收藏
|
|
//-----------------------------
|
|
coll:function(){
|
|
wx.showLoading({
|
|
mask:true,
|
|
})
|
|
var id = that.data.info.problem_id;
|
|
wx.request({
|
|
url: app.data.Home + '/index/coll',
|
|
data: {
|
|
wechat_id:wechat.wechat_id,
|
|
id:id,
|
|
},
|
|
success: function (rs) {
|
|
wx.hideLoading();
|
|
if (rs.data == "Success") {
|
|
that.setData({
|
|
check_coll: true,
|
|
})
|
|
wx.showToast({
|
|
title: '已收藏',
|
|
icon: 'success',
|
|
duration: 2000
|
|
})
|
|
} else {
|
|
that.setData({
|
|
check_coll: false,
|
|
})
|
|
wx.showToast({
|
|
title: '已取消',
|
|
icon: 'success',
|
|
duration: 2000
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 页面分享
|
|
//-----------------------------
|
|
onShareAppMessage: function () {
|
|
var id = that.data.info.problem_id;
|
|
var Share = {
|
|
title: '怼怼公考',
|
|
desc: '怼怼公考',
|
|
path: "/pages/problem/problem?id=" + id,
|
|
};
|
|
return Share;
|
|
},
|
|
//-----------------------------
|
|
// 重置
|
|
//-----------------------------
|
|
reset: function () {
|
|
that.setData({
|
|
jiexi: false,
|
|
img: [],
|
|
problem_id: "",
|
|
})
|
|
},
|
|
//-----------------------------
|
|
// 过渡效果
|
|
//-----------------------------
|
|
drag_line: function () {
|
|
var drag_line = that.data.drag_line;
|
|
if (drag_line) {
|
|
that.setData({
|
|
drag_line: false,
|
|
})
|
|
} else {
|
|
that.setData({
|
|
drag_line: true,
|
|
})
|
|
}
|
|
that.change();
|
|
},
|
|
//-----------------------------
|
|
// 究极的过度效果
|
|
//-----------------------------
|
|
change: function (state) {
|
|
var animation = wx.createAnimation({
|
|
timingFunction: "linear",
|
|
delay: 0,
|
|
});
|
|
that.animation = animation;
|
|
var drag_line = that.data.drag_line;
|
|
var height = that.data.height - 129;
|
|
|
|
if (drag_line) {
|
|
animation.height(height).step(150);
|
|
that.setData({
|
|
animationData2: animation.export()
|
|
})
|
|
} else {
|
|
animation.height(app.data.stem_height).step(150);
|
|
that.setData({
|
|
animationData2: animation.export()
|
|
})
|
|
}
|
|
},
|
|
|
|
|
|
//-----------------------------
|
|
// 页面分享
|
|
//-----------------------------
|
|
onShareAppMessage: function () {
|
|
return app.Share();
|
|
},
|
|
|
|
}) |