yuminge-app/yun-min-program-plugin-master/packageI/diyRormProve/diyRormProveSubmit/diyRormProveSubmit.js

376 lines
9.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// packageI/diyRormProve/diyRormProveSubmit/diyRormProveSubmit.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
isProve: false, //是否已核销成功
pageMode: null, //页面类型。提交还是核销
loading: true,
showCode: false, //核销码弹窗
finish: false, //倒计时已结束
status: 0,
field: {},
code_url: "", //核销码图片地址
dataId: "", //提交后的表单数据id
timer: null,
thumb: null,
description: null
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let _mode = null;
if(options.scene){
let scene = decodeURIComponent(options.scene);
if (scene) {
var info_arr = [];
info_arr = scene.split(",");
for (let i = 0; i < info_arr.length; i++) {
let chil_arr = [];
chil_arr = info_arr[i].split("=");
if (chil_arr[0] == "id") {
this.data.id = chil_arr[1];
} else if (chil_arr[0] == "mid") {
app._setMid(chil_arr[1]);
} else if (chil_arr[0] == "mode") {
_mode = chil_arr[1];
}
}
}
}else {
_mode = this.options.mode;
this.data.id = this.options.id;
}
if (_mode == "submit") {
// 会员提交表单
this.getData();
} else if (_mode == "prove") {
this.setData({
pageMode: "prove"
});
this.getProveData();
}
},
getData() {
// 获取表单数据
if (!this.options.id) {
return;
}
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.formDetail");
app._postNetWork({
url: urlStr,
data: {
id: this.data.id
},
success: (resdata) => {
let res = resdata.data;
if (res.result == 1) {
// if (res.data.form_data.is_prove == 0 && res.data.form_data.data_id) {
// // 场景1.已提交但是一直没核销成功手动删除。2.手动刷新页面
// this.data.dataId = res.data.form_data.data_id;
// this.delForm();
// return;
// }
this.setData({
thumb: res.data.form_data.thumb || null,
description:res.data.form_data.description || null,
loading: false,
field: res.data.form_data.fields,
status: res.data.form_data.status,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1000,
});
}
},
fail: (res) => {
console.log(res);
},
});
},
submit(e) {
console.log(e.detail);
// 提交表单数据,提交后需要核销员核销
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.saveData");
app._postNetWork({
url: urlStr,
data: {
form_id: this.data.id,
form_data: e.detail
},
success: (resdata) => {
let res = resdata.data;
if (res.result == 1) {
this.data.dataId = res.data.id;
this.getEwmImg(res.data.id);
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1000,
});
}
},
fail: (res) => {
console.log(res);
},
});
},
getEwmImg(_id) {
// 弹窗显示后,需要进行核销,轮询查询核销结果
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.proveCode");
app._postNetWork({
url: urlStr,
data: {
data_id: _id
},
success: (resdata) => {
let res = resdata.data;
if (res.result == 1) {
this.setData({
code_url: `${res.data.code_url}?${Date.now()}`,
showCode: true,
finish: false,
});
this.pollTimers(); //轮询
const countDown = this.selectComponent('.control-count-down');
countDown.reset();
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1000,
});
}
},
fail: (res) => {
console.log(res);
},
});
},
pollTimers() {
if (this.data.finish) {
// 超过2分钟有效期
return;
}
let that = this;
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.checkProve");
app._postNetWork({
url: urlStr,
data: {
id: this.data.dataId
},
success: (resdata) => {
let res = resdata.data;
if (res.result == 1) {
if (res.data.status == 0) {
this.data.timer = setTimeout(() => {
that.pollTimers();
}, 3000);
} else {
wx.showToast({
icon: "none",
title: '核销成功',
duration: 1000,
});
this.setData({
status: 1
});
this.initForm();
}
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1000,
});
}
},
fail: (res) => {
console.log(res);
},
});
},
close() {
let that = this;
let _text = this.data.finish ? "二维码链接已失效,请重新提交" : "关闭后数据需要重新填写,是否确认关闭";
wx.showModal({
title: '提示',
content: _text,
success(res) {
if (res.confirm) {
that.delForm();
that.initForm();
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
delForm() {
// 删除表单记录
// data_id为提交后的表单数据id
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.delProve");
app._postNetWork({
url: urlStr,
data: {
data_id: this.data.dataId
},
success: (resdata) => {
let res = resdata.data;
if (res.result == 1) {
this.getData();
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1000,
});
}
},
fail: (res) => {
console.log(res);
},
});
},
finishTimer() {
this.setData({
finish: true
});
this.delForm();
this.initForm();
},
initForm() {
if (this.data.timer) clearTimeout(this.data.timer); //清理定时任务
this.setData({
showCode: false,
code_url: '',
dataId: null
});
},
// 核销 =======
getProveData() {
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.dataDetail");
app._postNetWork({
url: urlStr,
data: {
id: this.data.id
},
success: (resdata) => {
let res = resdata.data;
if (res.result == 1) {
this.setData({
field: res.data.form_data.fields,
status: 1,
loading: false,
isProve: res.data.form_data.is_prove || false,
thumb: res.data.form_data.thumb || null,
description: res.data.form_data.description || null
});
} else {
wx.showModal({
title: '提示',
content: res.msg,
success(res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
},
fail: (res) => {
console.log(res);
},
});
},
proveForm() {
if(this.data.isProve){
return;
}
let urlStr = app.getNetAddresss("plugin.diy-form-prove.frontend.controllers.prove.submitProve");
app._postNetWork({
url: urlStr,
data: {
data_id: this.data.id
},
success: (resdata) => {
let res = resdata.data;
wx.showModal({
title: '提示',
content: res.msg,
success(res) {}
});
if (res.result == 1) {
this.setData({
isProve: true
});
}
},
fail: (res) => {
console.log(res);
},
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
if (this.data.timer) clearTimeout(this.data.timer); //清理定时任务
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
return {
title: this.data.thumb,
imageUrl: this.data.description
};
}
});