yuminge-app/yun-min-program-plugin-master/packageE/questionnaire/questions/questions.js

416 lines
11 KiB
JavaScript

// packageE/questionnaire/questions/questions.js
var app = getApp();
var int = app.globalData.statusBarHeight * 2 + 20;
Page({
/**
* 页面的初始数据
*/
data: {
statusBarHeight: int,
datainfo: [],
moreArr: [],
hint: false,
allNum: 0,
isLoading: false,
page: 1,
plugin_name:''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.id) {
this.setData({
id: options.id,
});
}
if (options.goods_id) {
this.setData({
goods_id: options.goods_id,
});
}
if (options.tag) {
this.setData({
tag: options.tag,
});
}
this.getData();
},
back() {
wx.navigateBack({
delta: 1,
});
},
submit() {
// 单选和多选的选择
let datainfo = this.data.datainfo;
let info = this.data.info.data;
let allNum = this.data.allNum;
for (let i = 0; i < info.length; i++) {
if(!info[i].answer || !info[i].answer.fraction){
continue;
}
if (info[i].type == 2) {
for (let key in info[i].answer.fraction) {
allNum += Number(info[i].answer.fraction[key]);
}
}
if (info[i].type == 1) {
let Arr = [];
// let len = info[i].answer.fraction.length;
for (let key in info[i].answer.fraction) {
Arr[key] = Number(info[i].answer.fraction[key]);
}
let r = Arr.filter(function (element, index, self) {
if (element) {
return element;
}
});
allNum += Math.max(...r);
}
}
this.setData({
allNum: allNum,
});
for (let i = 0; i < info.length; i++) {
if (info[i].id && info[i].required) {
if (!datainfo[i]) {
this.setData({
hint: true,
});
setTimeout(() => {
this.setData({
hint: false,
});
}, 1500);
return;
}
}
}
this.pushData();
},
multiple(e) {
console.log(e);
let datainfo = this.data.datainfo;
let ind = e.currentTarget.dataset.ind;
let indx = e.currentTarget.dataset.indx;
let info = this.data.info.data[ind];
let ids = info.id;
let qid = info.questionnaire_id;
let multipleArr = [];
let arr = [];
let farr = [];
let installArr = [];
let is_answer = info.answer.answer[indx];
let is_fraction = info.answer.fraction[indx];
farr.push(info.answer.fraction[indx]);
arr.push(info.answer.answer[indx]);
if (datainfo.length == 0) {
multipleArr.push({
answer: {},
}, {
fraction: {},
}, {
id: ids,
}, {
questionnaire_id: qid,
});
multipleArr[0].answer[indx] = info.answer.answer[indx];
multipleArr[1].fraction[indx] = info.answer.fraction[indx];
installArr.push(multipleArr);
datainfo[ind] = multipleArr;
} else {
let ischeack = this.cheackarr(datainfo, ind, ids);
if (ischeack) {
for (let i = 0; i < datainfo[ind].length; i++) {
if (datainfo[ind][i].answer) {
if (datainfo[ind][i].answer[indx]) {
delete datainfo[ind][i].answer[indx];
} else {
datainfo[ind][i].answer[indx] = is_answer;
}
}
if (datainfo[ind][i].fraction) {
if (datainfo[ind][i].fraction[indx]) {
delete datainfo[ind][i].fraction[indx];
} else {
datainfo[ind][i].fraction[indx] = is_fraction;
}
}
}
} else {
multipleArr.push({
answer: {},
}, {
fraction: {},
}, {
id: ids,
}, {
questionnaire_id: qid,
});
multipleArr[0].answer[indx] = info.answer.answer[indx];
multipleArr[1].fraction[indx] = info.answer.fraction[indx];
installArr.push(multipleArr);
datainfo[ind] = multipleArr;
}
}
this.setData({
datainfo: datainfo,
});
// 还差多选后的datainfo格式
},
cheackarr(datainfo, ind, ids) {
let is_cheack;
if (datainfo[ind]) {
for (let i = 0; i < datainfo[ind].length; i++) {
// console.log(datainfo[ind][i])
if (datainfo[ind][i].id == ids) {
is_cheack = true;
// console.log('选的是同一个问题')
return is_cheack;
}
}
} else {
is_cheack = false;
return is_cheack;
}
},
radio(e) {
let ind = e.currentTarget.dataset.ind;
let radioArr = [];
let arr = this.data.info.data;
let ids = e.currentTarget.dataset.id;
let questionnaire_ids = arr[ind].questionnaire_id;
let datainfo = this.data.datainfo;
let indx = e.currentTarget.dataset.indx;
let info = this.data.info.data[ind];
radioArr.push({
answer: {},
}, {
fraction: {},
}, {
id: ids,
}, {
questionnaire_id: questionnaire_ids,
});
radioArr[0].answer[indx] = info.answer.answer[indx];
radioArr[1].fraction[indx] = info.answer.fraction[indx];
datainfo[ind] = radioArr;
console.log(datainfo);
this.setData({
datainfo: datainfo,
});
// console.log(this.data.datainfo)
},
// 去掉数组的temp
trimSpace(array) {
for (var i = 0; i < array.length; i++) {
if (
array[i] == " " ||
array[i] == null ||
typeof array[i] == "undefined"
) {
array.splice(i, 1);
i = i - 1;
}
}
return array;
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if (this.data.isLoading) {
let pages = this.data.page + 1;
this.setData({
page: pages,
});
this.getMore();
} else {
return;
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {},
pushData() {
let that = this;
let urlStr = app.getNetAddresss("plugin.questionnaire.api.index.indexInfo");
app._getNetWork({
url: urlStr,
data: {
data: this.data.datainfo,
answerScore: "answerScore",
questionnaire_id: that.data.id ? that.data.id : "",
},
success: function (resdata) {
var res = resdata.data;
console.log(res);
if (res.result == 1) {
let sterarr = res.data.answerScore;
let stringsa = JSON.stringify(sterarr);
console.log(stringsa);
wx.navigateTo({
url: "/packageE/questionnaire/surveyResult/surveyResult?tag=" +
that.data.tag +
"&score=" +
sterarr.score +
"&questionnaire_id=" +
sterarr.questionnaire_id +
"&rewardPoint=" +
sterarr.rewardPoint +
"&allNum=" +
that.data.allNum +
"&goods_id=" +
that.data.goods_id + "&plugin_point_name="+sterarr.plugin_point_name,
});
wx.setStorageSync("surveyResult", stringsa);
// if(app._isTextEmpty(that.data.tag)){
// wx.navigateTo({
// url: '/packageE/questionnaire/surveyResult/surveyResult'
// })
// }else{
//
// }
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res);
},
});
},
getData() {
let that = this;
let urlStr = app.getNetAddresss("plugin.questionnaire.api.index.indexInfo");
app._getNetWork({
url: urlStr,
data: {
answer: "answer",
questionnaire_id: that.data.id ? that.data.id : "",
goods_id: that.data.goods_id ? that.data.goods_id : "",
page: that.data.page,
},
success: function (resdata) {
var res = resdata.data;
console.log(res);
if (res.result == 1) {
that.setData({
info: res.data.answer.choice,
id: res.data.answer.questionnaire_id,
title: res.data.answer.title,
current_page: res.data.answer.choice.current_page,
last_page: res.data.answer.choice.last_page,
plugin_name:res.data.plugin_name
});
if (that.data.current_page >= that.data.last_page) {
that.setData({
isLoading: false,
});
} else {
that.setData({
isLoading: true,
});
}
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
success: function (e) {
setTimeout(() => {
wx.navigateBack({
delta: 1,
});
}, 1600);
},
});
}
},
fail: function (res) {
console.log(res);
},
});
},
getMore() {
let that = this;
let urlStr = app.getNetAddresss("plugin.questionnaire.api.index.indexInfo");
app._getNetWork({
url: urlStr,
data: {
answer: "answer",
questionnaire_id: that.data.id ? that.data.id : "",
goods_id: that.data.goods_id ? that.data.goods_id : "",
page: that.data.page,
},
success: function (resdata) {
var res = resdata.data;
console.log(res);
if (res.result == 1) {
that.setData({
"info.data": that.data.info.data.concat(
res.data.answer.choice.data
),
id: res.data.answer.questionnaire_id,
title: res.data.answer.title,
current_page: res.data.answer.choice.current_page,
last_page: res.data.answer.choice.last_page,
});
if (that.data.current_page >= that.data.last_page) {
that.setData({
isLoading: false,
});
} else {
that.setData({
isLoading: true,
});
}
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res);
},
});
},
});