var WxParse = require('../../wxParse/wxParse.js');
const app = getApp();
var that;
var Interval;
var wechat;
var id;
var intt;
const baseUrl = getApp();
const api = require('../../config/api.js');
const util = require('../../config/util.js');
Page({
startX: 0,
startY: 0,
isClear: false,
/**
* 页面的初始数据
*/
data: {
reexam: 0, //是否反复作答 0不是,1是
index: 0,
hour: 0,
minute: 0,
second: 0,
millisecond: 0,
timecount: '00:00:00',
cost: 0,
flag: 1,
endtime: "",
baseurl: baseUrl.globalData.baseimgurl,
time: 1 * 60 * 60 * 1000, //初始时间
paystatus: 1, //1未开始时间开始状态,2开始
collection: 1, //1不收藏,2已收藏
singdouble: 1, //1单选,2多选
paiduanactive: 1,//1不是判断,2是判断题
zstime: 1, //1正计,0倒计
typeid: 1, //0练习1正式
activeopen: true,
coursetypefour_id: 1,
itemdatacurrent: [], //当前数据
itemdataall: [], //全部数据
itemdata: [], //选项数据
content: "",//富文本数据
showModalStatus: false,
pen: 3,
color: '#FFFFFF',
currentTab: 0,
now: 1, //当前页码
all: 15, //总页码
height: 0,
Timer_state: 1,
Answer_card: false,
Draft_paper: false,
false_analysis: false,
stem_height: 150,
jiexi: false,
field: {
analysis_text: "",
},
img: [],
scroll: "scroll",
drag_line: false,
showvide: false,
showexampop: false, //查看交卷,
examlistdata: [],
examlist: [],
},
showPopup() {
this.getids(); //先初始答题卡数据
this.setData({ showexampop: true });
this.getexamright();
},
onCloseexam() {
this.setData({ showexampop: false });
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
baseUrl.islogin();
console.log(options)
if (options.index) {
this.setData({
index: options.index,
reexam: 1
});
}
if (options.now) {
this.setData({
now: options.now
});
}
this.setData({
coursetypefour_id: options.examid
});
this.start();
},
/**getcoursetypefourexam
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
console.log("================");
console.log(this.data.index);
this.getcoursetypefourexam(this.data.coursetypefour_id, this.data.index);
this.initadddata(this.data.itemdataall, this.data.coursetypefour_id, wx.getStorageSync('wxuserid'));
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
start: function () {
let zstime = this.data.zstime;
if (zstime == 0) {
const countDown = this.selectComponent('.control-count-down');
countDown.start();
} else {
this.zsstart();
}
this.setData({
paystatus: 2
})
},
pause() {
let zstime = this.data.zstime;
if (zstime == 0) {
const countDown = this.selectComponent('.control-count-down');
countDown.pause();
} else {
// this.zsstop();
this.zsstop();
this.setData({
showvide: true
});
}
this.setData({
paystatus: 1
})
},
finished() {
console.log("交卷")
},
collectionselect: function (e) {
console.log(e);
this.getcollectionclick(e.currentTarget.id, wx.getStorageSync('wxuserid'));
},
getcollectionclick: function (collection_id, user_id) {
const that = this;
let url = baseUrl.globalData.baseUrl + '/exam/examcollection';
var param = {
id: collection_id,
user_id: user_id
};
//此处为使用封装的post请求
util.get(url, param).then((res) => {
console.log(res);
that.setData({
collection: res.data
})
}).catch((errMsg) => {
console.log(errMsg);
});
},
//-----------------------------
// 手机触摸开始
//-----------------------------
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
});
},
caogaoclick: function () {
this.setData({
showModalStatus: true,
})
},
//-----------------------------
// 草稿纸
//-----------------------------
shows: function () {
const that = this;
console.log(that.data.Draft_paper);
that.data.Draft_paper = !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: 5,
});
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
});
}
}, //-----------------------------
// 究极的过度效果
//-----------------------------
guodu: function () {
var animation = wx.createAnimation({
timingFunction: "ease-in-out",
delay: 15,
});
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);
},
next: function (e) {
const that = this;
that.getids(); //增加没有选项数据
that.guodu();
const index = that.data.index - 0 + 1;
console.log('------------');
console.log(index);
const all = that.data.all;
if (index < all) {
that.setData({
index: index,
now: index + 1,
itemdata: that.data.itemdataall[index].examitem,
itemdatacurrent: that.data.itemdataall[index],
content: that.data.itemdataall[index].name.replace(/\
{
if (item.id == index && item.selectvalue == "1") {
item.selectvalue = "2";
} else if (item.id == index) {
item.selectvalue = "1";
}
return item
})
console.log(arr);
this.setData({
itemdata: arr
});
}, //获取id
getids() {
let ids = this.data.itemdata.filter(item => item.selectvalue == '2').map(item => item.charmu);
let dx = this.data.itemdata.filter(item => item.selectvalue == '2').map(item => item.charmu);
console.log(ids);
console.log(dx);
console.log('多选Id:' + ids)
console.log('单选Id:' + dx);
console.log(this.data.itemdatacurrent);
let itemcurrent = this.data.itemdatacurrent;
let user_id = wx.getStorageSync('wxuserid') == '' ? 3 : wx.getStorageSync('wxuserid');
let examanswer = 1;
if (itemcurrent.examtype == 1) {
examanswer = dx + '';
} else {
examanswer = ids + '';
}
this.addexamdata(this.data.coursetypefour_id, itemcurrent.examtype, itemcurrent.typeid, itemcurrent.id, itemcurrent.itemname, examanswer, itemcurrent.answer, user_id, itemcurrent.grouppaper_id, this.data.index, this.data.now);
},
initadddata: function (params, coursetypefour_id, user_id) {
//初始化答题卡数据 (1)
console.log("===========----=============");
console.log(params);
let arr = params;
arr.forEach((element, index) => {
console.log(element);
let itemcurrent = element;
console.log(coursetypefour_id);
console.log(index);
console.log(arr.length);
this.addexamdata(coursetypefour_id, itemcurrent.examtype, itemcurrent.typeid, itemcurrent.id, itemcurrent.itemname, '', itemcurrent.answer, user_id, itemcurrent.grouppaper_id, index, arr.length);
});
console.log("===========----=============");
},
bindActive: function (e) {
let arr = this.data.itemdata.map(item => {
if (item.id === e.currentTarget.dataset.id) {
item.selectvalue = 2
} else {
item.selectvalue = 1
}
return item
})
this.setData({
itemdata: arr
});
// this.getids();
this.next(this.data.now);
},
openactive: function (e) {
console.log(e);
let opendata = this.data.openactive;
opendata = !opendata;
console.log(opendata);
this.setData({
activeopen: opendata,
openactive: opendata
})
},
//开始
zsstart: function () {
var that = this;
//停止(暂停)
clearInterval(intt);
//时间重置
that.setData({
hour: that.data.hour,
minute: that.data.minute,
second: that.data.second,
millisecond: that.data.millisecond,
paystatus: 2
})
intt = setInterval(function () { that.zstimer() }, 50);
},
//暂停
zsstop: function () {
clearInterval(intt);
},
//停止
zsReset: function () {
var that = this
clearInterval(intt);
that.setData({
hour: 0,
minute: 0,
second: 0,
millisecond: 0,
timecount: '00:00:00',
})
},
zstimer: function () {
var that = this;
// console.log(that.data.millisecond)
that.setData({
millisecond: that.data.millisecond + 5
})
if (that.data.millisecond >= 100) {
that.setData({
millisecond: 0,
second: that.data.second + 1
})
}
if (that.data.second >= 60) {
that.setData({
second: 0,
minute: that.data.minute + 1
})
}
if (that.data.minute >= 60) {
that.setData({
minute: 0,
hour: that.data.hour + 1
})
}
that.setData({
timecount: that.data.hour + ":" + that.data.minute + ":" + that.data.second
})
},
getcoursetypefourexam: function (params, index) {
//得到练习题目
const that = this;
let url = baseUrl.globalData.baseUrl + '/exam/paperexamitemas';
var param = {
coursetypefour_id: params,
user_id: wx.getStorageSync('wxuserid')
};
//此处为使用封装的post请求
util.post(url, param).then((res) => {
// that.initadddata(res.data.item, params, wx.getStorageSync('wxuserid'));
that.setData({
itemdataall: res.data.item,
itemdata: res.data.item[index].examitem,
all: res.data.item.length,
itemdatacurrent: res.data.item[index],
content: res.data.item[index].name.replace(/\
{
console.log(errMsg);
});
},
addexamdata: function (coursetypefour_id, examtype, typeid, exam_id, itemname, answer, rightanswer, user_id, grouppaper_id, index, now) {
//得到练习题目
const that = this;
let url = baseUrl.globalData.baseUrl + '/exam/examaddas';
var param = {
coursetypefour_id: coursetypefour_id,
examtype: examtype,
typeid: typeid,
exam_id: exam_id,
itemname: itemname,
answer: answer,
rightanswer: rightanswer,
user_id: user_id,
grouppaper_id: grouppaper_id,
index: index,
now: now
};
//此处为使用封装的post请求
util.post(url, param).then((res) => {
console.log(res);
}).catch((errMsg) => {
console.log(errMsg);
});
},
subitexam: function () {
let examtype = this.data.singdouble;
let id = this.data.coursetypefour_id;
let typeid = this.data.typeid;
let grouppaper_id = this.data.itemdatacurrent.grouppaper_id;
console.log(id);
this.getids();
// if (typeid == 1) {
// wx.navigateTo({
// url: '/pages/daitika/daitika?id=' + id + '&grouppaper_id=' + grouppaper_id,
// })
// } else {
// wx.navigateTo({
// url: '/pages/exampaper2/exampaper2?id=' + id + '&grouppaper_id=' + grouppaper_id,
// })
// }
wx.redirectTo({
url: '/pages/daitika/daitika?id=' + id + '&grouppaper_id=' + grouppaper_id + '&typeid=' + typeid,
})
},
getexamright: function () {
//弹出答题卡
//得到练习题目
const that = this;
let url = baseUrl.globalData.baseUrl + '/exam/examuseransweras';
let user_id = wx.getStorageSync('wxuserid') == '' ? 3 : wx.getStorageSync('wxuserid');
var param = {
coursetypefour_id: that.data.coursetypefour_id,
user_id: user_id
};
//此处为使用封装的post请求
util.post(url, param).then((res) => {
console.log(res.data);
that.setData({
examlist: res.data.itemdata,
examlistdata: res.data
});
}).catch((errMsg) => {
console.log(errMsg);
});
},
jumpitem: function (e) {
console.log(e.currentTarget.dataset.id);
const id = e.currentTarget.dataset.id;
//得到练习题目
const that = this;
let url = baseUrl.globalData.baseUrl + '/exam/getexamasitem';
var param = {
id: id
};
//此处为使用封装的post请求
util.post(url, param).then((res) => {
console.log("aaaaaaaaaaaaaaaaaaaaaaaaaaa")
console.log(res.data);
// wx.navigateTo({
// url: '/pages/examing/examing?examid='+res.data.coursetypefour_id+'&index='+res.data.index+'&now='+res.data.now,
// })
that.setData({
index: res.data.index,
now: res.data.index - 0 + 1
});
that.getcoursetypefourexam(res.data.coursetypefour_id, res.data.index);
}).catch((errMsg) => {
console.log(errMsg);
});
},
viewallexplain: function (params) {
let typeid = this.data.typeid;
let coursetypefour_id = this.data.coursetypefour_id;
let currentdata=this.data.itemdatacurrent;
console.log('currentdata========================');
console.log(currentdata);
let grouppaper_id = currentdata.grouppaper_id;
console.log('grouppaper_id========================');
console.log(grouppaper_id);
console.log(this.data.examlist);
let arr = [];
arr = this.data.examlist;
const arrstr = [];
arr.forEach(element => {
arrstr.push(element.id);
});
console.log(arrstr);
let jsonstr = JSON.stringify(arr);
this.examaddinnerdata(jsonstr);
if (typeid == 1) {
wx.navigateTo({
url: '/pages/exampaper/exampaper?id=' + coursetypefour_id + '&grouppaper_id=' + grouppaper_id,
})
} else {
wx.navigateTo({
url: '/pages/exampaper2/exampaper2?id=' + coursetypefour_id + '&grouppaper_id=' + grouppaper_id,
})
}
}, examaddinnerdata: function (listdata) {
//传送数组参数,批量添加数据
//得到练习题目
const that = this;
let url = baseUrl.globalData.baseUrl + '/exam/foreachexaminner';
var param = {
listdata: listdata
};
//此处为使用封装的post请求
util.post(url, param).then((res) => {
console.log(res.data);
}).catch((errMsg) => {
console.log(errMsg);
});
}
})